Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f198d85fb1 | ||
|
|
a97eba2149 | ||
|
|
1ec408f14c |
@ -1,14 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"pt_pin": "ptpin1",
|
|
||||||
"Uid": "UID_AAAAAAAAAAAA"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pt_pin": "ptpin2",
|
|
||||||
"Uid": "UID_BBBBBBBBBB"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pt_pin": "ptpin3",
|
|
||||||
"Uid": "UID_CCCCCCCCC"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@ -1,532 +0,0 @@
|
|||||||
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;
|
|
||||||
2080
JDSignValidator.js
@ -1,119 +0,0 @@
|
|||||||
/*
|
|
||||||
感谢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)}
|
|
||||||
@ -1,92 +0,0 @@
|
|||||||
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
|
|
||||||
}
|
|
||||||
35
TS_JDHelloWorld.d.ts
vendored
@ -1,35 +0,0 @@
|
|||||||
interface User {
|
|
||||||
index: number;
|
|
||||||
UserName: string;
|
|
||||||
cookie: string;
|
|
||||||
UserAgent: string;
|
|
||||||
end?: boolean;
|
|
||||||
}
|
|
||||||
declare class JDHelloWorld {
|
|
||||||
scriptName: string;
|
|
||||||
cookiesArr: string[];
|
|
||||||
users: User[];
|
|
||||||
constructor(scriptName?: string);
|
|
||||||
getCookie(): Promise<void>;
|
|
||||||
exceptCookie(filename?: string): string[];
|
|
||||||
get(url: string, headers?: any): Promise<unknown>;
|
|
||||||
post(url: string, data: any, headers?: any, params?: object): Promise<object | string>;
|
|
||||||
wait(ms?: number): Promise<unknown>;
|
|
||||||
o2s(obj: object, title?: string): void;
|
|
||||||
getShareCodePool(key: string, num: number): Promise<string[]>;
|
|
||||||
getshareCodeHW(key: string): Promise<string[]>;
|
|
||||||
getRandomNumberByRange(start: number, end: number): number;
|
|
||||||
getRandomNumString(e: number): string;
|
|
||||||
getEncStr(fn: string, body: {
|
|
||||||
id?: number;
|
|
||||||
taskType?: number;
|
|
||||||
}): object;
|
|
||||||
getSign(fn: string, body: object): Promise<string>;
|
|
||||||
cashDoSign(): Promise<unknown>;
|
|
||||||
run(son: {
|
|
||||||
main: any;
|
|
||||||
help?: any;
|
|
||||||
tips?: any;
|
|
||||||
}, help?: Function, tips?: Function): Promise<void>;
|
|
||||||
}
|
|
||||||
export { User, JDHelloWorld };
|
|
||||||
@ -1,316 +0,0 @@
|
|||||||
import axios from "axios"
|
|
||||||
import {Md5} from "ts-md5"
|
|
||||||
import * as dotenv from "dotenv"
|
|
||||||
import {existsSync, readFileSync} from "fs"
|
|
||||||
import {sendNotify} from './sendNotify'
|
|
||||||
|
|
||||||
dotenv.config()
|
|
||||||
const USER_AGENTS_ARR: string[] = [
|
|
||||||
"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 getRandomNumberByRange(start: number, end: number) {
|
|
||||||
end <= start && (end = start + 100)
|
|
||||||
return Math.floor(Math.random() * (end - start) + start)
|
|
||||||
}
|
|
||||||
|
|
||||||
let USER_AGENT = USER_AGENTS_ARR[getRandomNumberByRange(0, USER_AGENTS_ARR.length)]
|
|
||||||
|
|
||||||
async function getBeanShareCode(cookie: string) {
|
|
||||||
let {data}: any = await axios.post('https://api.m.jd.com/client.action',
|
|
||||||
`functionId=plantBeanIndex&body=${encodeURIComponent(
|
|
||||||
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}: any = await axios.post('https://api.m.jd.com/client.action?functionId=initForFarm', `body=${encodeURIComponent(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 ''
|
|
||||||
}
|
|
||||||
|
|
||||||
async function getCookie(): Promise<string[]> {
|
|
||||||
let cookiesArr: string[] = []
|
|
||||||
const jdCookieNode = require('./jdCookie.js')
|
|
||||||
for (let keys of Object.keys(jdCookieNode)) {
|
|
||||||
cookiesArr.push(jdCookieNode[keys])
|
|
||||||
}
|
|
||||||
let ptpin_temp: string[] = [], uniqueCookieArr: string[] = []
|
|
||||||
for (let cookie of cookiesArr) {
|
|
||||||
let UserName: string = decodeURIComponent(cookie.match(/pt_pin=([^;]*)/)![1])
|
|
||||||
if (!ptpin_temp.includes(UserName)) {
|
|
||||||
ptpin_temp.push(UserName)
|
|
||||||
uniqueCookieArr.push(cookie)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
cookiesArr = uniqueCookieArr
|
|
||||||
console.log(`共${cookiesArr.length}个京东账号\n`)
|
|
||||||
return cookiesArr
|
|
||||||
}
|
|
||||||
|
|
||||||
function wait(ms: number) {
|
|
||||||
return new Promise(resolve => {
|
|
||||||
setTimeout(resolve, ms)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function getJxToken(cookie: string, phoneId: 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
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!phoneId)
|
|
||||||
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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function exceptCookie(filename: string = 'x.ts') {
|
|
||||||
let except: any = []
|
|
||||||
if (existsSync('./utils/exceptCookie.json')) {
|
|
||||||
try {
|
|
||||||
except = JSON.parse(readFileSync('./utils/exceptCookie.json').toString() || '{}')[filename] || []
|
|
||||||
} catch (e) {
|
|
||||||
console.log('./utils/exceptCookie.json JSON格式错误')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return except
|
|
||||||
}
|
|
||||||
|
|
||||||
function randomString(e: number, word?: number) {
|
|
||||||
e = e || 32
|
|
||||||
let t = word === 26 ? "012345678abcdefghijklmnopqrstuvwxyz" : "0123456789abcdef", a = t.length, n = ""
|
|
||||||
for (let i = 0; i < e; i++)
|
|
||||||
n += t.charAt(Math.floor(Math.random() * a))
|
|
||||||
return n
|
|
||||||
}
|
|
||||||
|
|
||||||
function o2s(arr: object, title: string = '') {
|
|
||||||
title ? console.log(title, JSON.stringify(arr)) : console.log(JSON.stringify(arr))
|
|
||||||
}
|
|
||||||
|
|
||||||
function randomNumString(e: number) {
|
|
||||||
e = e || 32
|
|
||||||
let t = '0123456789', a = t.length, n = ""
|
|
||||||
for (let i = 0; i < e; i++)
|
|
||||||
n += t.charAt(Math.floor(Math.random() * a))
|
|
||||||
return n
|
|
||||||
}
|
|
||||||
|
|
||||||
function randomWord(n: number = 1) {
|
|
||||||
let t = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', a = t.length
|
|
||||||
let rnd: string = ''
|
|
||||||
for (let i = 0; i < n; i++) {
|
|
||||||
rnd += t.charAt(Math.floor(Math.random() * a))
|
|
||||||
}
|
|
||||||
return rnd
|
|
||||||
}
|
|
||||||
|
|
||||||
async function getshareCodeHW(key: string) {
|
|
||||||
let shareCodeHW: string[] = []
|
|
||||||
for (let i = 0; i < 5; i++) {
|
|
||||||
try {
|
|
||||||
let {data}: any = await axios.get('https://api.jdsharecode.xyz/api/HW_CODES')
|
|
||||||
shareCodeHW = data[key] || []
|
|
||||||
if (shareCodeHW.length !== 0) {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
console.log("getshareCodeHW Error, Retry...")
|
|
||||||
await wait(getRandomNumberByRange(2000, 6000))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return shareCodeHW
|
|
||||||
}
|
|
||||||
|
|
||||||
async function getShareCodePool(key: string, num: number) {
|
|
||||||
let shareCode: string[] = []
|
|
||||||
for (let i = 0; i < 2; i++) {
|
|
||||||
try {
|
|
||||||
let {data}: any = await axios.get(`https://api.jdsharecode.xyz/api/${key}/${num}`)
|
|
||||||
shareCode = data.data || []
|
|
||||||
console.log(`随机获取${num}个${key}成功:${JSON.stringify(shareCode)}`)
|
|
||||||
if (shareCode.length !== 0) {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
console.log("getShareCodePool Error, Retry...")
|
|
||||||
await wait(getRandomNumberByRange(2000, 6000))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return shareCode
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
async function wechat_app_msg(title: string, content: string, user: string) {
|
|
||||||
let corpid: string = "", corpsecret: string = ""
|
|
||||||
let {data: gettoken} = await axios.get(`https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=${corpid}&corpsecret=${corpsecret}`)
|
|
||||||
let access_token: string = gettoken.access_token
|
|
||||||
|
|
||||||
let {data: send} = await axios.post(`https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=${access_token}`, {
|
|
||||||
"touser": user,
|
|
||||||
"msgtype": "text",
|
|
||||||
"agentid": 1000002,
|
|
||||||
"text": {
|
|
||||||
"content": `${title}\n\n${content}`
|
|
||||||
},
|
|
||||||
"safe": 0
|
|
||||||
})
|
|
||||||
if (send.errcode === 0) {
|
|
||||||
console.log('企业微信应用消息发送成功')
|
|
||||||
} else {
|
|
||||||
console.log('企业微信应用消息发送失败', send)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
async function getDevice() {
|
|
||||||
let {data} = await axios.get('https://betahub.cn/api/apple/devices/iPhone', {
|
|
||||||
headers: {
|
|
||||||
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
data = data[getRandomNumberByRange(0, 16)]
|
|
||||||
return data.identifier
|
|
||||||
}
|
|
||||||
|
|
||||||
async function getVersion(device: string) {
|
|
||||||
let {data} = await axios.get(`https://betahub.cn/api/apple/firmwares/${device}`, {
|
|
||||||
headers: {
|
|
||||||
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
data = data[getRandomNumberByRange(0, data.length)]
|
|
||||||
return data.firmware_info.version
|
|
||||||
}
|
|
||||||
|
|
||||||
async function jdpingou() {
|
|
||||||
let device: string, version: string;
|
|
||||||
device = await getDevice();
|
|
||||||
version = await getVersion(device);
|
|
||||||
return `jdpingou;iPhone;5.19.0;${version};${randomString(40)};network/wifi;model/${device};appBuild/100833;ADID/;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/0;hasOCPay/0;supportBestPay/0;session/${getRandomNumberByRange(10, 90)};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 get(url: string, headers?: any): Promise<any> {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
axios.get(url, {
|
|
||||||
headers: headers
|
|
||||||
}).then(res => {
|
|
||||||
if (typeof res.data === 'string' && res.data.includes('jsonpCBK')) {
|
|
||||||
resolve(JSON.parse(res.data.match(/jsonpCBK.?\(([\w\W]*)\);?/)[1]))
|
|
||||||
} else {
|
|
||||||
resolve(res.data)
|
|
||||||
}
|
|
||||||
}).catch(err => {
|
|
||||||
reject({
|
|
||||||
code: err?.response?.status || -1,
|
|
||||||
msg: err?.response?.statusText || err.message || 'error'
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function post(url: string, prarms?: string | object, headers?: any): Promise<any> {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
axios.post(url, prarms, {
|
|
||||||
headers: headers
|
|
||||||
}).then(res => {
|
|
||||||
resolve(res.data)
|
|
||||||
}).catch(err => {
|
|
||||||
reject({
|
|
||||||
code: err?.response?.status || -1,
|
|
||||||
msg: err?.response?.statusText || err.message || 'error'
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export default USER_AGENT
|
|
||||||
export {
|
|
||||||
getBeanShareCode,
|
|
||||||
getFarmShareCode,
|
|
||||||
getCookie,
|
|
||||||
wait,
|
|
||||||
getRandomNumberByRange,
|
|
||||||
getJxToken,
|
|
||||||
exceptCookie,
|
|
||||||
randomString,
|
|
||||||
o2s,
|
|
||||||
randomNumString,
|
|
||||||
getshareCodeHW,
|
|
||||||
getShareCodePool,
|
|
||||||
randomWord,
|
|
||||||
jdpingou,
|
|
||||||
get,
|
|
||||||
post,
|
|
||||||
USER_AGENTS_ARR
|
|
||||||
}
|
|
||||||
128
USER_AGENTS.js
@ -1,128 +0,0 @@
|
|||||||
const USER_AGENTS = [
|
|
||||||
"jdapp;android;10.1.6;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.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",
|
|
||||||
"jdapp;android;10.1.6;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.6;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.6;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.6;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.6;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.6;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.6;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.6;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.6;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.6;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.6;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.6;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.6;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.6;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.6;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.6;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.6;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.6;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.6;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.6;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.6;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.6;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.6;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.6;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.6;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.6;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.6;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.6;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.6;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.6;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.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",
|
|
||||||
"jdapp;android;10.1.6;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.6;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.6;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",
|
|
||||||
'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
|
|
||||||
}
|
|
||||||
@ -1,282 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
*/
|
|
||||||
let jdSignUrl = '' // 算法url
|
|
||||||
let Authorization = '' // 算法url token 有则填
|
|
||||||
let got = '';
|
|
||||||
try{
|
|
||||||
got = require('got');
|
|
||||||
}catch(e){
|
|
||||||
console.log('请添加依赖模块"got"')
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
jdSignUrl = process.env.gua_cleancart_SignUrl ? process.env.gua_cleancart_SignUrl : `${jdSignUrl}`
|
|
||||||
Authorization = process.env.gua_cleancart_Authorization ? process.env.gua_cleancart_Authorization : `${Authorization}`
|
|
||||||
if(Authorization && Authorization.indexOf("Bearer ") === -1) Authorization = `Bearer ${Authorization}`
|
|
||||||
let cookie = ''
|
|
||||||
let out = false
|
|
||||||
|
|
||||||
async function clean(ck,url,goodsArr){
|
|
||||||
if(!got) return false
|
|
||||||
return new Promise(async resolve => {
|
|
||||||
let msg = false
|
|
||||||
try{
|
|
||||||
if(!ck) return ''
|
|
||||||
if(!jdSignUrl) jdSignUrl = url
|
|
||||||
cookie = ck
|
|
||||||
// if(jdSignUrl.indexOf("://jd.smiek.tk/") > -1) {
|
|
||||||
// resolve(msg)
|
|
||||||
// return false
|
|
||||||
// }
|
|
||||||
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 = jsonParse(data)
|
|
||||||
if(typeof res == 'object' && res){
|
|
||||||
if(res.resultCode == 0){
|
|
||||||
if(res.mainTitle.indexOf('购物车是空的') > -1){
|
|
||||||
msg = []
|
|
||||||
}else if(!res.clearCartInfo || !res.subTitle){
|
|
||||||
console.log(res.mainTitle)
|
|
||||||
}else{
|
|
||||||
let num = 0
|
|
||||||
if(res.subTitle){
|
|
||||||
num = res.subTitle.match(/共(\d+)件商品/).length > 0 && res.subTitle.match(/共(\d+)件商品/)[1] || 0
|
|
||||||
console.log(res.subTitle)
|
|
||||||
}
|
|
||||||
// console.log(`共${num}件商品`)
|
|
||||||
if(num != 0){
|
|
||||||
let operations = []
|
|
||||||
let operNum = 0
|
|
||||||
let goodsArrs = []
|
|
||||||
let goodsArrsFlag = false
|
|
||||||
for(let a of res.clearCartInfo || {}){
|
|
||||||
// console.log(a.groupName)
|
|
||||||
// if(a.groupName.indexOf('7天内加入购物车') > -1){
|
|
||||||
if(typeof goodsArr !== 'object'){
|
|
||||||
goodsArrs = [...goodsArrs,...a.groupDetails]
|
|
||||||
goodsArrsFlag = true
|
|
||||||
}else{
|
|
||||||
for(let s of a.groupDetails || []){
|
|
||||||
if(typeof goodsArr === 'object'){
|
|
||||||
let XBDetail = goodsArr.filter((x) => x.skuId === s.skuId)
|
|
||||||
if(XBDetail.length == 0){
|
|
||||||
// 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
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
if(goodsArrsFlag){
|
|
||||||
msg = goodsArrs || []
|
|
||||||
return
|
|
||||||
}
|
|
||||||
console.log(`准备清空${operNum}件商品`)
|
|
||||||
if(operations.length == 0){
|
|
||||||
console.log(`清空${operNum}件商品|没有找到要清空的商品`)
|
|
||||||
}else{
|
|
||||||
let clearBody = `{"homeWishListUserFlag":"1","userType":"0","updateTag":false,"showPlusEntry":"2","hitNewUIStatus":"1","cvhv":"049591","cartuuid":"hjudwgohxzVu96krv/T6Hg==","operations":${jsonStringify(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 = jsonParse(clearData)
|
|
||||||
if(typeof clearRes == 'object'){
|
|
||||||
if(clearRes.resultCode == 0) {
|
|
||||||
console.log(`清空${operNum}件商品|✅\n`)
|
|
||||||
}else if(clearRes.mainTitle){
|
|
||||||
console.log(`清空${operNum}件商品|${clearRes.mainTitle}\n`)
|
|
||||||
}else{
|
|
||||||
console.log(`清空${operNum}件商品|❌\n`)
|
|
||||||
console.log(clearData)
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
console.log(`清空${operNum}件商品|❌\n`)
|
|
||||||
console.log(clearData)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}else if(res.mainTitle){
|
|
||||||
if(res.mainTitle.indexOf('购物车是空的') > -1){
|
|
||||||
msg = []
|
|
||||||
}
|
|
||||||
console.log(res.mainTitle)
|
|
||||||
}else{
|
|
||||||
console.log(data)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
console.log(data)
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
console.log(data)
|
|
||||||
}
|
|
||||||
}catch(e){
|
|
||||||
console.log(e)
|
|
||||||
} finally {
|
|
||||||
resolve(msg);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function jdApi(functionId,body) {
|
|
||||||
if(!functionId || !body) return
|
|
||||||
return new Promise(resolve => {
|
|
||||||
let opts = taskPostUrl(`/client.action?functionId=${functionId}`, body)
|
|
||||||
got.post(opts).then(
|
|
||||||
(resp) => {
|
|
||||||
const {body:data } = resp
|
|
||||||
try {
|
|
||||||
let res = jsonParse(data);
|
|
||||||
if(typeof res == 'object'){
|
|
||||||
if(res.mainTitle) console.log(res.mainTitle)
|
|
||||||
if(res.resultCode == 0){
|
|
||||||
resolve(res);
|
|
||||||
}else if (res.tips && res.tips.includes("正在努力加载")){
|
|
||||||
console.log("请求太快,ip被限制了")
|
|
||||||
out = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
console.log(e)
|
|
||||||
} finally {
|
|
||||||
resolve('');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
(err) => {
|
|
||||||
try {
|
|
||||||
const { message: error, response: resp } = err
|
|
||||||
console.log(`${jsonStringify(error)}`)
|
|
||||||
console.log(`${functionId} API请求失败,请检查网路重试`)
|
|
||||||
} catch (e) {
|
|
||||||
console.log(e)
|
|
||||||
} 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 options = {
|
|
||||||
url: jdSignUrl,
|
|
||||||
body:`{"fn":"${fn}","body":${body}}`,
|
|
||||||
headers: {
|
|
||||||
'Accept':'*/*',
|
|
||||||
"accept-encoding": "gzip, deflate, br",
|
|
||||||
'Content-Type': 'application/json',
|
|
||||||
},
|
|
||||||
timeout:30000
|
|
||||||
}
|
|
||||||
if(Authorization) options["headers"]["Authorization"] = Authorization
|
|
||||||
got.post(options).then(
|
|
||||||
(resp) => {
|
|
||||||
const {body:data } = resp
|
|
||||||
try {
|
|
||||||
let res = jsonParse(data)
|
|
||||||
if(typeof res === 'object' && res){
|
|
||||||
if(res.code && res.code == 200 && res.data){
|
|
||||||
if(res.data.sign) sign = res.data.sign || ''
|
|
||||||
if(sign != '') resolve(sign)
|
|
||||||
}else{
|
|
||||||
console.log(data)
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
console.log(data)
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
console.log(e)
|
|
||||||
} finally {
|
|
||||||
resolve('')
|
|
||||||
}
|
|
||||||
},
|
|
||||||
(err) => {
|
|
||||||
try {
|
|
||||||
const { message: error, response: resp } = err
|
|
||||||
console.log(`${jsonStringify(error)}`)
|
|
||||||
console.log(`算法url API请求失败,请检查网路重试`)
|
|
||||||
} catch (e) {
|
|
||||||
console.log(e)
|
|
||||||
} finally {
|
|
||||||
resolve('')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function jsonParse(str) {
|
|
||||||
try {
|
|
||||||
return JSON.parse(str);
|
|
||||||
} catch (e) {
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function jsonStringify(arr) {
|
|
||||||
try {
|
|
||||||
return JSON.stringify(arr);
|
|
||||||
} catch (e) {
|
|
||||||
return arr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
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}`,
|
|
||||||
"User-Agent": "JD4iPhone/167853 (iPhone; iOS; Scale/2.00)" ,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
clean
|
|
||||||
}
|
|
||||||
116
depend.py
@ -1,116 +0,0 @@
|
|||||||
import json
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
import os
|
|
||||||
|
|
||||||
|
|
||||||
class Depend:
|
|
||||||
@staticmethod
|
|
||||||
def get_ql_path():
|
|
||||||
if re.search('/ql/data/', sys.path[0]):
|
|
||||||
return '/ql/data/'
|
|
||||||
else:
|
|
||||||
return '/ql/'
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_env(env, default=None):
|
|
||||||
"""
|
|
||||||
青龙环境变量读取,支持将整数,bool类型变量转化为正常的值
|
|
||||||
Args:
|
|
||||||
env: 字符串,被读取的青龙环境变量
|
|
||||||
default: 字符串,如果找不到这个环境变量,返回的默认变量
|
|
||||||
Returns:
|
|
||||||
result 被格式化的变量
|
|
||||||
"""
|
|
||||||
if env in os.environ and os.environ[env]:
|
|
||||||
if os.environ[env] in ["True", "False"]:
|
|
||||||
return False if os.environ[env] == "False" else True
|
|
||||||
elif os.environ[env].isdigit():
|
|
||||||
return int(os.environ[env])
|
|
||||||
else:
|
|
||||||
return os.environ[env]
|
|
||||||
else:
|
|
||||||
if default:
|
|
||||||
if default in ["True", "False"]:
|
|
||||||
return False if default == "False" else True
|
|
||||||
elif default.isdigit():
|
|
||||||
return int(default)
|
|
||||||
else:
|
|
||||||
return default
|
|
||||||
else:
|
|
||||||
return None
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def str2list(string):
|
|
||||||
if string and string != "":
|
|
||||||
if re.search(",", string):
|
|
||||||
return string.split(",")
|
|
||||||
else:
|
|
||||||
return [string]
|
|
||||||
else:
|
|
||||||
return []
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def not2append(addlist, appended):
|
|
||||||
for i in addlist:
|
|
||||||
if i not in appended:
|
|
||||||
appended.append(i)
|
|
||||||
return appended
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def re_filter_list(string, filter_list):
|
|
||||||
for i in filter_list:
|
|
||||||
if re.search(i, string):
|
|
||||||
return True
|
|
||||||
return False
|
|
||||||
|
|
||||||
def only_check(self, pyname, pyabspath,osenv=None):
|
|
||||||
only_path = self.get_ql_path() + pyname + '_by_keven1024'
|
|
||||||
result = "☺当前脚本目录为: " + str(pyabspath) + "\n"
|
|
||||||
j_data = {
|
|
||||||
"py_path": None
|
|
||||||
}
|
|
||||||
if osenv and self.get_env(osenv):
|
|
||||||
result += "😏检测到环境变量:" + str(osenv) + " = " + self.get_env(osenv) + " 将按照该路径为准\n"
|
|
||||||
pyabspath = self.get_env(osenv)
|
|
||||||
if os.path.exists(only_path):
|
|
||||||
with open(only_path, 'r+') as f:
|
|
||||||
py_data = f.read(2097152)
|
|
||||||
if py_data == pyabspath:
|
|
||||||
# 对旧版转换为json格式
|
|
||||||
j_data["py_path"] = pyabspath
|
|
||||||
f.seek(0, os.SEEK_SET)
|
|
||||||
result += "😏检测到旧版检测文件,自动转换新版\n"
|
|
||||||
f.writelines(json.dumps(j_data))
|
|
||||||
try:
|
|
||||||
j_data = json.loads(py_data)
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
if j_data["py_path"] and j_data["py_path"] == pyabspath:
|
|
||||||
result += "😁脚本唯一性检测通过,继续运行!\n"
|
|
||||||
else:
|
|
||||||
result += "🙄检测到其他同类型的青龙日志分析脚本存在,拒绝运行!\n"
|
|
||||||
load_send()
|
|
||||||
send(pyname, result)
|
|
||||||
exit(0)
|
|
||||||
else:
|
|
||||||
with open(only_path, "w") as f:
|
|
||||||
j_data["py_path"] = pyabspath
|
|
||||||
f.writelines(json.dumps(j_data))
|
|
||||||
result += "🙄检测到第一次运行,已写入唯一性检测文件,如无特殊情况请勿删除\n"
|
|
||||||
return result
|
|
||||||
|
|
||||||
|
|
||||||
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 + "/notify.py"):
|
|
||||||
try:
|
|
||||||
from notify import send
|
|
||||||
except:
|
|
||||||
send = False
|
|
||||||
print("加载通知服务失败~")
|
|
||||||
else:
|
|
||||||
send = False
|
|
||||||
print("加载通知服务失败~")
|
|
||||||
BIN
function/.DS_Store
vendored
@ -1,341 +0,0 @@
|
|||||||
import axios from "axios"
|
|
||||||
import {Md5} from "ts-md5"
|
|
||||||
import * as dotenv from "dotenv"
|
|
||||||
import {existsSync, readFileSync} from "fs"
|
|
||||||
import {sendNotify} from './sendNotify'
|
|
||||||
|
|
||||||
dotenv.config()
|
|
||||||
|
|
||||||
let fingerprint: string | number, token: string = '', enCryptMethodJD: any
|
|
||||||
|
|
||||||
const USER_AGENTS: Array<string> = [
|
|
||||||
"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) {
|
|
||||||
end <= start && (end = start + 100)
|
|
||||||
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}: any = await axios.post('https://api.m.jd.com/client.action',
|
|
||||||
`functionId=plantBeanIndex&body=${encodeURIComponent(
|
|
||||||
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}: any = await axios.post('https://api.m.jd.com/client.action?functionId=initForFarm', `body=${encodeURIComponent(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 ''
|
|
||||||
}
|
|
||||||
|
|
||||||
async function requireConfig(check: boolean = false): Promise<string[]> {
|
|
||||||
let cookiesArr: string[] = []
|
|
||||||
const jdCookieNode = require('../jdCookie.js')
|
|
||||||
let keys: string[] = Object.keys(jdCookieNode)
|
|
||||||
for (let i = 0; i < keys.length; i++) {
|
|
||||||
let cookie = jdCookieNode[keys[i]]
|
|
||||||
if (!check) {
|
|
||||||
cookiesArr.push(cookie)
|
|
||||||
} else {
|
|
||||||
if (await checkCookie(cookie)) {
|
|
||||||
cookiesArr.push(cookie)
|
|
||||||
} else {
|
|
||||||
let username = decodeURIComponent(jdCookieNode[keys[i]].match(/pt_pin=([^;]*)/)![1])
|
|
||||||
console.log('Cookie失效', username)
|
|
||||||
await sendNotify('Cookie失效', '【京东账号】' + username)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
console.log(`共${cookiesArr.length}个京东账号\n`)
|
|
||||||
return cookiesArr
|
|
||||||
}
|
|
||||||
|
|
||||||
async function checkCookie(cookie) {
|
|
||||||
await wait(1000)
|
|
||||||
try {
|
|
||||||
let {data}: any = await axios.get(`https://api.m.jd.com/client.action?functionId=GetJDUserInfoUnion&appid=jd-cphdeveloper-m&body=${encodeURIComponent(JSON.stringify({"orgFlag": "JD_PinGou_New", "callSource": "mainorder", "channel": 4, "isHomewhite": 0, "sceneval": 2}))}&loginType=2&_=${Date.now()}&sceneval=2&g_login_type=1&callback=GetJDUserInfoUnion&g_ty=ls`, {
|
|
||||||
headers: {
|
|
||||||
'authority': 'api.m.jd.com',
|
|
||||||
'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1',
|
|
||||||
'referer': 'https://home.m.jd.com/',
|
|
||||||
'cookie': cookie
|
|
||||||
}
|
|
||||||
})
|
|
||||||
data = JSON.parse(data.match(/GetJDUserInfoUnion\((.*)\)/)[1])
|
|
||||||
return data.retcode === '0';
|
|
||||||
} catch (e) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function wait(timeout: number) {
|
|
||||||
return new Promise(resolve => {
|
|
||||||
setTimeout(resolve, timeout)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
async function requestAlgo(appId: number = 10032) {
|
|
||||||
fingerprint = generateFp()
|
|
||||||
return new Promise<void>(async resolve => {
|
|
||||||
let {data}: any = 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
|
|
||||||
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 getJxToken(cookie: string, phoneId: 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
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!phoneId)
|
|
||||||
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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function exceptCookie(filename: string = 'x.ts') {
|
|
||||||
let except: any = []
|
|
||||||
if (existsSync('./utils/exceptCookie.json')) {
|
|
||||||
try {
|
|
||||||
except = JSON.parse(readFileSync('./utils/exceptCookie.json').toString() || '{}')[filename] || []
|
|
||||||
} catch (e) {
|
|
||||||
console.log('./utils/exceptCookie.json JSON格式错误')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return except
|
|
||||||
}
|
|
||||||
|
|
||||||
function randomString(e: number, word?: number) {
|
|
||||||
e = e || 32
|
|
||||||
let t = word === 26 ? "012345678abcdefghijklmnopqrstuvwxyz" : "0123456789abcdef", a = t.length, n = ""
|
|
||||||
for (let i = 0; i < e; i++)
|
|
||||||
n += t.charAt(Math.floor(Math.random() * a))
|
|
||||||
return n
|
|
||||||
}
|
|
||||||
|
|
||||||
function o2s(arr: object, title: string = '') {
|
|
||||||
title ? console.log(title, JSON.stringify(arr)) : console.log(JSON.stringify(arr))
|
|
||||||
}
|
|
||||||
|
|
||||||
function randomNumString(e: number) {
|
|
||||||
e = e || 32
|
|
||||||
let t = '0123456789', a = t.length, n = ""
|
|
||||||
for (let i = 0; i < e; i++)
|
|
||||||
n += t.charAt(Math.floor(Math.random() * a))
|
|
||||||
return n
|
|
||||||
}
|
|
||||||
|
|
||||||
function randomWord(n: number = 1) {
|
|
||||||
let t = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', a = t.length
|
|
||||||
let rnd: string = ''
|
|
||||||
for (let i = 0; i < n; i++) {
|
|
||||||
rnd += t.charAt(Math.floor(Math.random() * a))
|
|
||||||
}
|
|
||||||
return rnd
|
|
||||||
}
|
|
||||||
|
|
||||||
function obj2str(obj: object) {
|
|
||||||
return JSON.stringify(obj)
|
|
||||||
}
|
|
||||||
|
|
||||||
async function getDevice() {
|
|
||||||
let {data} = await axios.get('https://betahub.cn/api/apple/devices/iPhone', {
|
|
||||||
headers: {
|
|
||||||
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
data = data[getRandomNumberByRange(0, 16)]
|
|
||||||
return data.identifier
|
|
||||||
}
|
|
||||||
|
|
||||||
async function getVersion(device: string) {
|
|
||||||
let {data} = await axios.get(`https://betahub.cn/api/apple/firmwares/${device}`, {
|
|
||||||
headers: {
|
|
||||||
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
data = data[getRandomNumberByRange(0, data.length)]
|
|
||||||
return data.firmware_info.version
|
|
||||||
}
|
|
||||||
|
|
||||||
async function jdpingou() {
|
|
||||||
let device: string, version: string;
|
|
||||||
device = await getDevice();
|
|
||||||
version = await getVersion(device);
|
|
||||||
return `jdpingou;iPhone;5.19.0;${version};${randomString(40)};network/wifi;model/${device};appBuild/100833;ADID/;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/0;hasOCPay/0;supportBestPay/0;session/${getRandomNumberByRange(10, 90)};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 get(url: string, headers?: any): Promise<any> {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
axios.get(url, {
|
|
||||||
headers: headers
|
|
||||||
}).then(res => {
|
|
||||||
if (typeof res.data === 'string' && res.data.includes('jsonpCBK')) {
|
|
||||||
resolve(JSON.parse(res.data.match(/jsonpCBK.?\(([\w\W]*)\);?/)[1]))
|
|
||||||
} else {
|
|
||||||
resolve(res.data)
|
|
||||||
}
|
|
||||||
}).catch(err => {
|
|
||||||
reject({
|
|
||||||
code: err?.response?.status || -1,
|
|
||||||
msg: err?.response?.statusText || err.message || 'error'
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function post(url: string, prarms?: string | object, headers?: any): Promise<any> {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
axios.post(url, prarms, {
|
|
||||||
headers: headers
|
|
||||||
}).then(res => {
|
|
||||||
resolve(res.data)
|
|
||||||
}).catch(err => {
|
|
||||||
reject({
|
|
||||||
code: err?.response?.status || -1,
|
|
||||||
msg: err?.response?.statusText || err.message || 'error'
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export default USER_AGENT
|
|
||||||
export {
|
|
||||||
TotalBean,
|
|
||||||
getBeanShareCode,
|
|
||||||
getFarmShareCode,
|
|
||||||
requireConfig,
|
|
||||||
wait,
|
|
||||||
getRandomNumberByRange,
|
|
||||||
requestAlgo,
|
|
||||||
getJxToken,
|
|
||||||
randomString,
|
|
||||||
o2s,
|
|
||||||
randomNumString,
|
|
||||||
getShareCodePool,
|
|
||||||
randomWord,
|
|
||||||
obj2str,
|
|
||||||
jdpingou,
|
|
||||||
get,
|
|
||||||
post
|
|
||||||
}
|
|
||||||
1
function/cache/index.js
vendored
@ -1,270 +0,0 @@
|
|||||||
let request = require('request');
|
|
||||||
let CryptoJS = require('crypto-js');
|
|
||||||
let qs = require('querystring');
|
|
||||||
let urls = require('url');
|
|
||||||
let path = require('path');
|
|
||||||
let notify = require('./sendNotify');
|
|
||||||
let mainEval = require("./eval");
|
|
||||||
let assert = require('assert');
|
|
||||||
let jxAlgo = require("./jxAlgo");
|
|
||||||
let config = require("./config");
|
|
||||||
let user = {}
|
|
||||||
try {
|
|
||||||
user = require("./user")
|
|
||||||
} catch (e) {}
|
|
||||||
class env {
|
|
||||||
constructor(name) {
|
|
||||||
this.config = { ...config,
|
|
||||||
...process.env,
|
|
||||||
...user,
|
|
||||||
};
|
|
||||||
this.name = name;
|
|
||||||
this.message = [];
|
|
||||||
this.sharecode = [];
|
|
||||||
this.code = [];
|
|
||||||
this.timestamp = new Date().getTime();
|
|
||||||
this.time = this.start = parseInt(this.timestamp / 1000);
|
|
||||||
this.options = {
|
|
||||||
'headers': {}
|
|
||||||
};
|
|
||||||
console.log(`\n🔔${this.name}, 开始!\n`)
|
|
||||||
console.log(`=========== 脚本执行-北京时间(UTC+8):${new Date(new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000).toLocaleString()} ===========\n`)
|
|
||||||
}
|
|
||||||
done() {
|
|
||||||
let timestamp = new Date().getTime();
|
|
||||||
let work = ((timestamp - this.timestamp) / 1000).toFixed(2)
|
|
||||||
console.log(`=========================脚本执行完成,耗时${work}s============================\n`)
|
|
||||||
console.log(`🔔${this.name}, 结束!\n`)
|
|
||||||
}
|
|
||||||
notify(array) {
|
|
||||||
let text = '';
|
|
||||||
for (let i of array) {
|
|
||||||
text += `${i.user} -- ${i.msg}\n`
|
|
||||||
}
|
|
||||||
console.log(`\n=============================开始发送提醒消息=============================`)
|
|
||||||
notify.sendNotify(this.name + "消息提醒", text)
|
|
||||||
}
|
|
||||||
wait(t) {
|
|
||||||
return new Promise(e => setTimeout(e, t))
|
|
||||||
}
|
|
||||||
setOptions(params) {
|
|
||||||
this.options = params;
|
|
||||||
}
|
|
||||||
setCookie(cookie) {
|
|
||||||
this.options.headers.cookie = cookie
|
|
||||||
}
|
|
||||||
jsonParse(str) {
|
|
||||||
try {
|
|
||||||
return JSON.parse(str);
|
|
||||||
} catch (e) {
|
|
||||||
try {
|
|
||||||
let data = this.match([/try\s*\{\w+\s*\(([^\)]+)/, /\w+\s*\(([^\)]+)/], str)
|
|
||||||
return JSON.parse(data);
|
|
||||||
} catch (ee) {
|
|
||||||
try {
|
|
||||||
let cb = this.match(/try\s*\{\s*(\w+)/, str)
|
|
||||||
if (cb) {
|
|
||||||
let func = "";
|
|
||||||
let data = str.replace(cb, `func=`)
|
|
||||||
eval(data);
|
|
||||||
return func
|
|
||||||
}
|
|
||||||
} catch (eee) {
|
|
||||||
return str
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
curl(params, extra = '') {
|
|
||||||
if (typeof(params) != 'object') {
|
|
||||||
params = {
|
|
||||||
'url': params
|
|
||||||
}
|
|
||||||
}
|
|
||||||
params = Object.assign({ ...this.options
|
|
||||||
}, params);
|
|
||||||
params.method = params.body ? 'POST' : 'GET';
|
|
||||||
if (params.hasOwnProperty('cookie')) {
|
|
||||||
params.headers.cookie = params.cookie
|
|
||||||
}
|
|
||||||
if (params.hasOwnProperty('ua') || params.hasOwnProperty('useragent')) {
|
|
||||||
params.headers['user-agent'] = params.ua
|
|
||||||
}
|
|
||||||
if (params.hasOwnProperty('referer')) {
|
|
||||||
params.headers.referer = params.referer
|
|
||||||
}
|
|
||||||
if (params.hasOwnProperty('params')) {
|
|
||||||
params.url += '?' + qs.stringify(params.params)
|
|
||||||
}
|
|
||||||
if (params.hasOwnProperty('form')) {
|
|
||||||
params.method = 'POST'
|
|
||||||
}
|
|
||||||
return new Promise(resolve => {
|
|
||||||
request(params, async (err, resp, data) => {
|
|
||||||
try {
|
|
||||||
if (params.console) {
|
|
||||||
console.log(data)
|
|
||||||
}
|
|
||||||
this.source = this.jsonParse(data);
|
|
||||||
if (extra) {
|
|
||||||
this[extra] = this.source
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
console.log(e, resp)
|
|
||||||
} finally {
|
|
||||||
resolve(data);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
dumps(dict) {
|
|
||||||
return JSON.stringify(dict)
|
|
||||||
}
|
|
||||||
loads(str) {
|
|
||||||
return JSON.parse(str)
|
|
||||||
}
|
|
||||||
notice(msg) {
|
|
||||||
this.message.push({
|
|
||||||
'index': this.index,
|
|
||||||
'user': this.user,
|
|
||||||
'msg': msg
|
|
||||||
})
|
|
||||||
}
|
|
||||||
notices(msg, user, index = '') {
|
|
||||||
this.message.push({
|
|
||||||
'user': user,
|
|
||||||
'msg': msg,
|
|
||||||
'index': index
|
|
||||||
})
|
|
||||||
}
|
|
||||||
urlparse(url) {
|
|
||||||
return urls.parse(url, true, true)
|
|
||||||
}
|
|
||||||
md5(encryptString) {
|
|
||||||
return CryptoJS.MD5(encryptString).toString()
|
|
||||||
}
|
|
||||||
haskey(data, key, value) {
|
|
||||||
value = typeof value !== 'undefined' ? value : '';
|
|
||||||
var spl = key.split('.');
|
|
||||||
for (var i of spl) {
|
|
||||||
i = !isNaN(i) ? parseInt(i) : i;
|
|
||||||
try {
|
|
||||||
data = data[i];
|
|
||||||
} catch (error) {
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (data == undefined) {
|
|
||||||
return ''
|
|
||||||
}
|
|
||||||
if (value !== '') {
|
|
||||||
return data === value ? true : false;
|
|
||||||
} else {
|
|
||||||
return data
|
|
||||||
}
|
|
||||||
}
|
|
||||||
match(pattern, string) {
|
|
||||||
pattern = (pattern instanceof Array) ? pattern : [pattern];
|
|
||||||
for (let pat of pattern) {
|
|
||||||
// var match = string.match(pat);
|
|
||||||
var match = pat.exec(string)
|
|
||||||
if (match) {
|
|
||||||
var len = match.length;
|
|
||||||
if (len == 1) {
|
|
||||||
return match;
|
|
||||||
} else if (len == 2) {
|
|
||||||
return match[1];
|
|
||||||
} else {
|
|
||||||
var r = [];
|
|
||||||
for (let i = 1; i < len; i++) {
|
|
||||||
r.push(match[i])
|
|
||||||
}
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
// console.log(pat.exec(string))
|
|
||||||
}
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
matchall(pattern, string) {
|
|
||||||
pattern = (pattern instanceof Array) ? pattern : [pattern];
|
|
||||||
var match;
|
|
||||||
var result = [];
|
|
||||||
for (var pat of pattern) {
|
|
||||||
while ((match = pat.exec(string)) != null) {
|
|
||||||
var len = match.length;
|
|
||||||
if (len == 1) {
|
|
||||||
result.push(match);
|
|
||||||
} else if (len == 2) {
|
|
||||||
result.push(match[1]);
|
|
||||||
} else {
|
|
||||||
var r = [];
|
|
||||||
for (let i = 1; i < len; i++) {
|
|
||||||
r.push(match[i])
|
|
||||||
}
|
|
||||||
result.push(r);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
compare(property) {
|
|
||||||
return function(a, b) {
|
|
||||||
var value1 = a[property];
|
|
||||||
var value2 = b[property];
|
|
||||||
return value1 - value2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
filename(file, rename = '') {
|
|
||||||
if (!this.runfile) {
|
|
||||||
this.runfile = path.basename(file).replace(".js", '').replace(/-/g, '_')
|
|
||||||
}
|
|
||||||
if (rename) {
|
|
||||||
rename = `_${rename}`;
|
|
||||||
}
|
|
||||||
return path.basename(file).replace(".js", rename).replace(/-/g, '_');
|
|
||||||
}
|
|
||||||
rand(n, m) {
|
|
||||||
var random = Math.floor(Math.random() * (m - n + 1) + n);
|
|
||||||
return random;
|
|
||||||
}
|
|
||||||
random(arr, num) {
|
|
||||||
var temp_array = new Array();
|
|
||||||
for (var index in arr) {
|
|
||||||
temp_array.push(arr[index]);
|
|
||||||
}
|
|
||||||
var return_array = new Array();
|
|
||||||
for (var i = 0; i < num; i++) {
|
|
||||||
if (temp_array.length > 0) {
|
|
||||||
var arrIndex = Math.floor(Math.random() * temp_array.length);
|
|
||||||
return_array[i] = temp_array[arrIndex];
|
|
||||||
temp_array.splice(arrIndex, 1);
|
|
||||||
} else {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return return_array;
|
|
||||||
}
|
|
||||||
compact(lists, keys) {
|
|
||||||
let array = {};
|
|
||||||
for (let i of keys) {
|
|
||||||
if (lists[i]) {
|
|
||||||
array[i] = lists[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return array;
|
|
||||||
}
|
|
||||||
unique(arr) {
|
|
||||||
return Array.from(new Set(arr));
|
|
||||||
}
|
|
||||||
end(args) {
|
|
||||||
return args[args.length - 1]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
module.exports = {
|
|
||||||
env,
|
|
||||||
eval: mainEval,
|
|
||||||
assert,
|
|
||||||
jxAlgo,
|
|
||||||
}
|
|
||||||
@ -1 +0,0 @@
|
|||||||
module.exports = {"ThreadJs":[],"invokeKey":"RtKLB8euDo7KwsO0"}
|
|
||||||
@ -1,83 +0,0 @@
|
|||||||
function mainEval($) {
|
|
||||||
return `
|
|
||||||
!(async () => {
|
|
||||||
jdcookie = process.env.JD_COOKIE ? process.env.JD_COOKIE.split("&") : require("./function/jdcookie").cookie;
|
|
||||||
cookies={
|
|
||||||
'all':jdcookie,
|
|
||||||
'help': typeof(help) != 'undefined' ? [...jdcookie].splice(0,parseInt(help)):[]
|
|
||||||
}
|
|
||||||
$.sleep=cookies['all'].length * 500
|
|
||||||
taskCookie=cookies['all']
|
|
||||||
jxAlgo = new common.jxAlgo();
|
|
||||||
if ($.readme) {
|
|
||||||
console.log(\`使用说明:\\n\${$.readme}\\n以上内容仅供参考,有需求自行添加\\n\`,)
|
|
||||||
}
|
|
||||||
console.log(\`======================本次任务共\${taskCookie.length}个京东账户Cookie======================\\n\`)
|
|
||||||
try{
|
|
||||||
await prepare();
|
|
||||||
|
|
||||||
if ($.sharecode.length > 0) {
|
|
||||||
$.sharecode = $.sharecode.filter(d=>d && JSON.stringify(d)!='{}')
|
|
||||||
console.log('助力码', $.sharecode )
|
|
||||||
}
|
|
||||||
}catch(e1){console.log("初始函数不存在,将继续执行主函数Main\\n")}
|
|
||||||
if (typeof(main) != 'undefined') {
|
|
||||||
try{
|
|
||||||
for (let i = 0; i < taskCookie.filter(d => d).length; i++) {
|
|
||||||
$.cookie = taskCookie[i];
|
|
||||||
$.user = decodeURIComponent($.cookie.match(/pt_pin=([^;]+)/)[1])
|
|
||||||
$.index = parseInt(i) + 1;
|
|
||||||
let info = {
|
|
||||||
'index': $.index,
|
|
||||||
'user': $.user,
|
|
||||||
'cookie': $.cookie
|
|
||||||
}
|
|
||||||
if (!$.thread) {
|
|
||||||
console.log(\`\n******开始【京东账号\${$.index}】\${$.user} 任务*********\n\`);
|
|
||||||
}
|
|
||||||
if ($.config[\`\${$.runfile}_except\`] && $.config[\`\${$.runfile}_except\`].includes(\$.user)) {
|
|
||||||
console.log(\`全局变量\${$.runfile}_except中配置了该账号pt_pin,跳过此次任务\`)
|
|
||||||
}else{
|
|
||||||
$.setCookie($.cookie)
|
|
||||||
try{
|
|
||||||
if ($.sharecode.length > 0) {
|
|
||||||
for (let smp of $.sharecode) {
|
|
||||||
smp = Object.assign({ ...info}, smp);
|
|
||||||
$.thread ? main(smp) : await main(smp);
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
$.thread ? main(info) : await main(info);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch(em){
|
|
||||||
console.log(em.message)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}catch(em){console.log(em.message)}
|
|
||||||
if ($.thread) {
|
|
||||||
await $.wait($.sleep)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (typeof(extra) != 'undefined') {
|
|
||||||
console.log(\`============================开始运行额外任务============================\`)
|
|
||||||
try{
|
|
||||||
await extra();
|
|
||||||
}catch(e4){console.log(e4.message)}
|
|
||||||
}
|
|
||||||
})().catch((e) => {
|
|
||||||
console.log(e.message)
|
|
||||||
}).finally(() => {
|
|
||||||
if ($.message.length > 0) {
|
|
||||||
$.notify($.message)
|
|
||||||
}
|
|
||||||
$.done();
|
|
||||||
});
|
|
||||||
|
|
||||||
`
|
|
||||||
}
|
|
||||||
module.exports = {
|
|
||||||
mainEval
|
|
||||||
}
|
|
||||||
@ -1,72 +0,0 @@
|
|||||||
import axios from "axios"
|
|
||||||
import {format} from "date-fns"
|
|
||||||
import * as CryptoJS from 'crypto-js'
|
|
||||||
|
|
||||||
class H5ST {
|
|
||||||
tk: string;
|
|
||||||
timestamp: string;
|
|
||||||
rd: string;
|
|
||||||
appId: string;
|
|
||||||
fp: string;
|
|
||||||
time: number;
|
|
||||||
ua: string
|
|
||||||
enc: string;
|
|
||||||
|
|
||||||
constructor(appId: string, ua: string, fp: string) {
|
|
||||||
this.appId = appId
|
|
||||||
this.ua = ua
|
|
||||||
this.fp = fp || this.__genFp()
|
|
||||||
}
|
|
||||||
|
|
||||||
__genFp() {
|
|
||||||
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 __genAlgo() {
|
|
||||||
this.time = Date.now()
|
|
||||||
this.timestamp = format(this.time, "yyyyMMddHHmmssSSS")
|
|
||||||
let {data} = await axios.post(`https://cactus.jd.com/request_algo?g_ty=ajax`, {
|
|
||||||
'version': '3.0',
|
|
||||||
'fp': this.fp,
|
|
||||||
'appId': this.appId.toString(),
|
|
||||||
'timestamp': this.time,
|
|
||||||
'platform': 'web',
|
|
||||||
'expandParams': ''
|
|
||||||
}, {
|
|
||||||
headers: {
|
|
||||||
'Host': 'cactus.jd.com',
|
|
||||||
'accept': 'application/json',
|
|
||||||
'content-type': 'application/json',
|
|
||||||
'user-agent': this.ua,
|
|
||||||
}
|
|
||||||
})
|
|
||||||
this.tk = data.data.result.tk
|
|
||||||
this.rd = data.data.result.algo.match(/rd='(.*)'/)[1]
|
|
||||||
this.enc = data.data.result.algo.match(/algo\.(.*)\(/)[1]
|
|
||||||
}
|
|
||||||
|
|
||||||
__genKey(tk: string, fp: string, ts: string, ai: string, algo: object) {
|
|
||||||
let str = `${tk}${fp}${ts}${ai}${this.rd}`;
|
|
||||||
return algo[this.enc](str, tk)
|
|
||||||
}
|
|
||||||
|
|
||||||
__genH5st(body: object) {
|
|
||||||
let y = this.__genKey(this.tk, this.fp, this.timestamp, this.appId, CryptoJS).toString(CryptoJS.enc.Hex)
|
|
||||||
let s = ''
|
|
||||||
for (let key of Object.keys(body)) {
|
|
||||||
key === 'body' ? s += `${key}:${CryptoJS.SHA256(body[key]).toString(CryptoJS.enc.Hex)}&` : s += `${key}:${body[key]}&`
|
|
||||||
}
|
|
||||||
s = s.slice(0, -1)
|
|
||||||
s = CryptoJS.HmacSHA256(s, y).toString(CryptoJS.enc.Hex)
|
|
||||||
return encodeURIComponent(`${this.timestamp};${this.fp};${this.appId.toString()};${this.tk};${s};3.0;${this.time.toString()}`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export {
|
|
||||||
H5ST
|
|
||||||
}
|
|
||||||
@ -1,466 +0,0 @@
|
|||||||
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 = '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';
|
|
||||||
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",
|
|
||||||
};
|
|
||||||
let SERVER = 'iv.jd.com';
|
|
||||||
if (process.env.JDJR_SERVER) {
|
|
||||||
SERVER = process.env.JDJR_SERVER
|
|
||||||
}
|
|
||||||
class JDJRValidator {
|
|
||||||
constructor() {
|
|
||||||
this.data = {};
|
|
||||||
this.x = 0;
|
|
||||||
this.t = Date.now();
|
|
||||||
this.n = 0;
|
|
||||||
}
|
|
||||||
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(3000);
|
|
||||||
//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 {
|
|
||||||
if (this.n > 60) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.n++;
|
|
||||||
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) => {
|
|
||||||
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 = 32;
|
|
||||||
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 + 12, 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: 100,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
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 + 20, 10);
|
|
||||||
const currY = parseInt(this.y + 20, 10);
|
|
||||||
const currT = this.t + movedT;
|
|
||||||
this.pos.push([currX, currY, currT]);
|
|
||||||
}
|
|
||||||
this.x += x;
|
|
||||||
this.y += y;
|
|
||||||
this.t += Math.max(duration, movedT);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
exports.JDJRValidator = JDJRValidator
|
|
||||||
@ -1,35 +0,0 @@
|
|||||||
/*
|
|
||||||
此文件为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(`============脚本执行时间:${new Date(new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000).toLocaleString('chinese',{hour12:false})}=============\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();
|
|
||||||
}
|
|
||||||
console.log('>>>>>>>>>>>>>>Faker 提示:任务正常运行中>>>>>>>>>>>>>>>\n')
|
|
||||||
@ -1,9 +0,0 @@
|
|||||||
let logs = [
|
|
||||||
'"random":"34038984","log":"1649609592095~18RCD4zkS04d41d8cd98f00b204e9800998ecf8427e~1,1~E97F477EB64B001195F05A4D48067CD6C272595D~0doi8po~C~TRpGXBAPbWUeE0ZbWxoIam8ZFF9AXxAPBxQQQkEXDBoDBwYMAw8KBgcAAw4KAgEMABoeE0VQUhoIE0ZBQkxGV0dTFBQQRldUFAIQRVRBV01TRFMXGhpCVVwXDGMGHQIZBhQBHQAZB2UeE1hfFAIDHRBWRRoIEwVQUFpQAFABAAgEVAZTD1sGBwABUw9RCQMHDw1WCQAFFBQQX0IXDBp+WFxAThhKCQRqAAwQHRBBFAIQAAQBDw4CCAcMBAgLBBAZFFJZEwgXVxoeE1RFVBoIExAZFFZEEwgXcVddVl5QFnFcUhwXGhpcUEQXDBoLAwsGBRoeE0FWRBoIagQDARQBBgdoGhpAXhAPbRpTEx4XVxoeE1MXGhpTEx4XVxoeE1MXGhpTE28ZFFFdUBAPFF5UV1RTUExGEx4XV1IQCxBAFBQQUlsXDBpFAhwHGAwQHRBWUGdEEwgXBggQHRBXUhoIE0BUWFxdXA8GAggBCQsNAhoeE19fFAJpAR4FGghvHRBXWldVEwgXVxoeE19GURoIE1MXSw==~04y5u3i"',
|
|
||||||
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
export {
|
|
||||||
logs
|
|
||||||
}
|
|
||||||
@ -1,204 +0,0 @@
|
|||||||
let request = require("request");
|
|
||||||
let CryptoJS = require('crypto-js');
|
|
||||||
let qs = require("querystring");
|
|
||||||
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 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 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 vars[i].substr(vars[i].indexOf('=') + 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
class jxAlgo {
|
|
||||||
constructor(params = {}) {
|
|
||||||
this.appId = 10001
|
|
||||||
this.result = {}
|
|
||||||
this.timestamp = Date.now();
|
|
||||||
for (let i in params) {
|
|
||||||
this[i] = params[i]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
set(params = {}) {
|
|
||||||
for (let i in params) {
|
|
||||||
this[i] = params[i]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
get(key) {
|
|
||||||
return this[key]
|
|
||||||
}
|
|
||||||
async dec(url) {
|
|
||||||
if (!this.tk) {
|
|
||||||
this.fingerprint = generateFp();
|
|
||||||
await this.requestAlgo()
|
|
||||||
}
|
|
||||||
let obj = qs.parse(url.split("?")[1]);
|
|
||||||
let stk = obj['_stk'];
|
|
||||||
return this.h5st(this.timestamp, stk, url)
|
|
||||||
}
|
|
||||||
h5st(time, stk, url) {
|
|
||||||
stk = stk || (url ? getUrlData(url, '_stk') : '')
|
|
||||||
const timestamp = new Date(time).Format("yyyyMMddhhmmssSSS");
|
|
||||||
let hash1 = this.enCryptMethodJD(this.tk, this.fingerprint.toString(), timestamp.toString(), this.appId.toString(), CryptoJS).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);
|
|
||||||
const enc = (["".concat(timestamp.toString()), "".concat(this.fingerprint.toString()), "".concat(this.appId.toString()), "".concat(this.tk), "".concat(hash2)].join(";"))
|
|
||||||
this.result['fingerprint'] = this.fingerprint;
|
|
||||||
this.result['timestamp'] = this.timestamp
|
|
||||||
this.result['stk'] = stk;
|
|
||||||
this.result['h5st'] = enc
|
|
||||||
let sp = url.split("?");
|
|
||||||
let obj = qs.parse(sp[1])
|
|
||||||
if (obj.callback) {
|
|
||||||
delete obj.callback
|
|
||||||
}
|
|
||||||
let params = Object.assign(obj, {
|
|
||||||
'_time': this.timestamp,
|
|
||||||
'_': this.timestamp,
|
|
||||||
'timestamp': this.timestamp,
|
|
||||||
'sceneval': 2,
|
|
||||||
'g_login_type': 1,
|
|
||||||
'h5st': enc,
|
|
||||||
})
|
|
||||||
this.result['url'] = `${sp[0]}?${qs.stringify(params)}`
|
|
||||||
return this.result
|
|
||||||
}
|
|
||||||
token(user) {
|
|
||||||
let nickname = user.includes('pt_pin') ? user.match(/pt_pin=([^;]+)/)[1] : user;
|
|
||||||
let phoneId = this.createuuid(40, 'lc');
|
|
||||||
|
|
||||||
let token = this.md5(decodeURIComponent(nickname) + this.timestamp + phoneId + 'tPOamqCuk9NLgVPAljUyIHcPRmKlVxDy');
|
|
||||||
return {
|
|
||||||
'strPgtimestamp': this.timestamp,
|
|
||||||
'strPhoneID': phoneId,
|
|
||||||
'strPgUUNum': token
|
|
||||||
}
|
|
||||||
}
|
|
||||||
md5(encryptString) {
|
|
||||||
return CryptoJS.MD5(encryptString).toString()
|
|
||||||
}
|
|
||||||
createuuid(a, c) {
|
|
||||||
switch (c) {
|
|
||||||
case "a":
|
|
||||||
c = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
||||||
break;
|
|
||||||
case "n":
|
|
||||||
c = "0123456789";
|
|
||||||
break;
|
|
||||||
case "c":
|
|
||||||
c = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
|
||||||
break;
|
|
||||||
case "l":
|
|
||||||
c = "abcdefghijklmnopqrstuvwxyz";
|
|
||||||
break;
|
|
||||||
case 'cn':
|
|
||||||
case 'nc':
|
|
||||||
c = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
|
|
||||||
break;
|
|
||||||
case "lc":
|
|
||||||
case "cl":
|
|
||||||
c = "abcdefghijklmnopqrstuvwxyz0123456789";
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
c = "0123456789abcdef"
|
|
||||||
}
|
|
||||||
var e = "";
|
|
||||||
for (var g = 0; g < a; g++) e += c[Math.ceil(1E8 * Math.random()) % c.length];
|
|
||||||
return e
|
|
||||||
}
|
|
||||||
async requestAlgo() {
|
|
||||||
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': 'jdpingou;iPhone;4.9.4;12.4;ae49fae72d0a8976f5155267f56ec3a5b0da75c3;network/wifi;model/iPhone8,4;appBuild/100579;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',
|
|
||||||
'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/pingou/dream_factory/index.html?ptag=7155.9.4',
|
|
||||||
'Accept-Language': 'zh-CN,zh;q=0.9,zh-TW;q=0.8,en;q=0.7'
|
|
||||||
},
|
|
||||||
'body': JSON.stringify({
|
|
||||||
"version": "1.0",
|
|
||||||
"fp": this.fingerprint,
|
|
||||||
"appId": this.appId.toString(),
|
|
||||||
"timestamp": this.timestamp,
|
|
||||||
"platform": "web",
|
|
||||||
"expandParams": ""
|
|
||||||
})
|
|
||||||
}
|
|
||||||
return new Promise(async resolve => {
|
|
||||||
request.post(options, (err, resp, data) => {
|
|
||||||
try {
|
|
||||||
if (data) {
|
|
||||||
data = JSON.parse(data);
|
|
||||||
if (data['status'] === 200) {
|
|
||||||
let result = data.data.result
|
|
||||||
this.tk = result.tk;
|
|
||||||
let enCryptMethodJDString = result.algo;
|
|
||||||
if (enCryptMethodJDString) {
|
|
||||||
this.enCryptMethodJD = new Function(`return ${enCryptMethodJDString}`)();
|
|
||||||
}
|
|
||||||
this.result = result
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
console.log(e)
|
|
||||||
} finally {
|
|
||||||
resolve(this.result);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
module.exports = jxAlgo
|
|
||||||
1004
function/magic.js
204
function/ql.js
@ -1,204 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
const got = require('got');
|
|
||||||
require('dotenv').config();
|
|
||||||
const { readFile } = require('fs/promises');
|
|
||||||
const path = require('path');
|
|
||||||
|
|
||||||
const qlDir = '/ql';
|
|
||||||
const fs = require('fs');
|
|
||||||
let Fileexists = fs.existsSync('/ql/data/config/auth.json');
|
|
||||||
let authFile="";
|
|
||||||
if (Fileexists)
|
|
||||||
authFile="/ql/data/config/auth.json"
|
|
||||||
else
|
|
||||||
authFile="/ql/config/auth.json"
|
|
||||||
//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;
|
|
||||||
};
|
|
||||||
5130
function/signdps.js
135
githubAction.md
@ -1,135 +0,0 @@
|
|||||||
## 环境变量说明
|
|
||||||
|
|
||||||
##### 京东(必须)
|
|
||||||
|
|
||||||
| Name | 归属 | 属性 | 说明 |
|
|
||||||
| :---------: | :--: | ---- | ------------------------------------------------------------ |
|
|
||||||
| `JD_COOKIE` | 京东 | 必须 | 京东cookie,多个账号的cookie使用`&`隔开,例:`pt_key=XXX;pt_pin=XXX;&pt_key=XXX;pt_pin=XXX;&pt_key=XXX;pt_pin=XXX;`。具体获取参考[浏览器获取京东cookie教程](./backUp/GetJdCookie.md) 或者 [插件获取京东cookie教程](./backUp/GetJdCookie2.md) |
|
|
||||||
|
|
||||||
##### 京东隐私安全 环境变量
|
|
||||||
|
|
||||||
| Name | 归属 | 属性 | 默认值 | 说明 |
|
|
||||||
| :-------------: | :---------: | :----: | :----: | ------------------------------------------------------------ |
|
|
||||||
| `JD_DEBUG` | 脚本打印log | 非必须 | true | 运行脚本时,是否显示log,默认显示。改成false表示不显示,注重隐私的人可以设置 JD_DEBUG 为false |
|
|
||||||
| `JD_USER_AGENT` | 京东 | 非必须 | | 自定义此库里京东系列脚本的UserAgent,不懂不知不会UserAgent的请不要随意填写内容。如需使用此功能建议填写京东APP的UA |
|
|
||||||
|
|
||||||
##### 推送通知环境变量(目前提供`微信server酱`、`pushplus(推送加)`、`iOS Bark APP`、`telegram机器人`、`钉钉机器人`、`企业微信机器人`、`iGot`、`企业微信应用消息`等通知方式)
|
|
||||||
|
|
||||||
| Name | 归属 | 属性 | 说明 |
|
|
||||||
| :---------------: | :----------------------------------------------------------: | :----: | ------------------------------------------------------------ |
|
|
||||||
| `PUSH_KEY` | 微信server酱推送 | 非必须 | server酱的微信通知[官方文档](http://sc.ftqq.com/3.version),已兼容 [Server酱·Turbo版](https://sct.ftqq.com/) |
|
|
||||||
| `BARK_PUSH` | [BARK推送](https://apps.apple.com/us/app/bark-customed-notifications/id1403753865) | 非必须 | IOS用户下载BARK这个APP,填写内容是app提供的`设备码`,例如:https://api.day.app/123 ,那么此处的设备码就是`123`,再不懂看 [这个图](icon/bark.jpg)(注:支持自建填完整链接即可) |
|
|
||||||
| `BARK_SOUND` | [BARK推送](https://apps.apple.com/us/app/bark-customed-notifications/id1403753865) | 非必须 | bark推送声音设置,例如`choo`,具体值请在`bark`-`推送铃声`-`查看所有铃声` |
|
|
||||||
| `TG_BOT_TOKEN` | telegram推送 | 非必须 | tg推送(需设备可连接外网),`TG_BOT_TOKEN`和`TG_USER_ID`两者必需,填写自己申请[@BotFather](https://t.me/BotFather)的Token,如`10xxx4:AAFcqxxxxgER5uw` , [具体教程](./backUp/TG_PUSH.md) |
|
|
||||||
| `TG_USER_ID` | telegram推送 | 非必须 | tg推送(需设备可连接外网),`TG_BOT_TOKEN`和`TG_USER_ID`两者必需,填写[@getuseridbot](https://t.me/getuseridbot)中获取到的纯数字ID, [具体教程](./backUp/TG_PUSH.md) |
|
|
||||||
| `DD_BOT_TOKEN` | 钉钉推送 | 非必须 | 钉钉推送(`DD_BOT_TOKEN`和`DD_BOT_SECRET`两者必需)[官方文档](https://developers.dingtalk.com/document/app/custom-robot-access) ,只需`https://oapi.dingtalk.com/robot/send?access_token=XXX` 等于`=`符号后面的XXX即可 |
|
|
||||||
| `DD_BOT_SECRET` | 钉钉推送 | 非必须 | (`DD_BOT_TOKEN`和`DD_BOT_SECRET`两者必需) ,密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的`SECXXXXXXXXXX`等字符 , 注:钉钉机器人安全设置只需勾选`加签`即可,其他选项不要勾选,再不懂看 [这个图](icon/DD_bot.png) |
|
|
||||||
| `QYWX_KEY` | 企业微信机器人推送 | 非必须 | 密钥,企业微信推送 webhook 后面的 key [详见官方说明文档](https://work.weixin.qq.com/api/doc/90000/90136/91770) |
|
|
||||||
| `QYWX_AM` | 企业微信应用消息推送 | 非必须 | corpid,corpsecret,touser,agentid,素材库图片id [参考文档1](http://note.youdao.com/s/HMiudGkb) [参考文档2](http://note.youdao.com/noteshare?id=1a0c8aff284ad28cbd011b29b3ad0191)<br>素材库图片填0为图文消息, 填1为纯文本消息 |
|
|
||||||
| `IGOT_PUSH_KEY` | iGot推送 | 非必须 | iGot聚合推送,支持多方式推送,确保消息可达。 [参考文档](https://wahao.github.io/Bark-MP-helper ) |
|
|
||||||
| `PUSH_PLUS_TOKEN` | pushplus推送 | 非必须 | 微信扫码登录后一对一推送或一对多推送下面的token(您的Token) [官方网站](http://www.pushplus.plus/) |
|
|
||||||
| `PUSH_PLUS_USER` | pushplus推送 | 非必须 | 一对多推送的“群组编码”(一对多推送下面->您的群组(如无则新建)->群组编码)注:(1、需订阅者扫描二维码 2、如果您是创建群组所属人,也需点击“查看二维码”扫描绑定,否则不能接受群组消息推送),只填`PUSH_PLUS_TOKEN`默认为一对一推送 |
|
|
||||||
| `TG_PROXY_HOST` | Telegram 代理的 IP | 非必须 | 代理类型为 http。例子:http代理 http://127.0.0.1:1080 则填写 127.0.0.1 |
|
|
||||||
| `TG_PROXY_PORT` | Telegram 代理的端口 | 非必须 | 例子:http代理 http://127.0.0.1:1080 则填写 1080 |
|
|
||||||
| `TG_PROXY_AUTH` | Telegram 代理的认证参数 | 非必须 | 代理的认证参数 |
|
|
||||||
| `TG_API_HOST` | Telegram api自建的反向代理地址 | 非必须 | 例子:反向代理地址 http://aaa.bbb.ccc 则填写 aaa.bbb.ccc [简略搭建教程](https://shimo.im/docs/JD38CJDQtYy3yTd8/read) |
|
|
||||||
|
|
||||||
|
|
||||||
##### 互助码类环境变量
|
|
||||||
|
|
||||||
| Name | 归属 | 属性 | 需要助力次数/可提供助力次数 | 说明 |
|
|
||||||
| :-------------------------: | :----------------: | :----: | :-----------------------: | ------------------------------------------------------------ |
|
|
||||||
| `FRUITSHARECODES` | 东东农场<br>互助码 | 非必须 | 5/3 | 填写规则请看[jdFruitShareCodes.js](./jdFruitShareCodes.js)或见下方[互助码的填写规则](#互助码的填写规则) |
|
|
||||||
| `PETSHARECODES` | 东东萌宠<br>互助码 | 非必须 | 5/5 | 填写规则和上面类似或见下方[互助码的填写规则](#互助码的填写规则) |
|
|
||||||
| `PLANT_BEAN_SHARECODES` | 种豆得豆<br>互助码 | 非必须 | 9/3 | 填写规则和上面类似或见下方[互助码的填写规则](#互助码的填写规则) |
|
|
||||||
| `DDFACTORY_SHARECODES` | 东东工厂<br>互助码 | 非必须 | 5/3 | 填写规则和上面类似或见下方[互助码的填写规则](#互助码的填写规则) |
|
|
||||||
| `DREAM_FACTORY_SHARE_CODES` | 京喜工厂<br>互助码 | 非必须 | 不固定/3 | 填写规则和上面类似或见下方[互助码的填写规则](#互助码的填写规则) |
|
|
||||||
| `JDZZ_SHARECODES` | 京东赚赚<br>互助码 | 非必须 | 5/2 | 填写规则和上面类似,或见下方[互助码的填写规则](#互助码的填写规则) |
|
|
||||||
| `JDJOY_SHARECODES` | 疯狂的JOY<br>互助码 | 非必须 | 6/ | 填写规则和上面类似,或见下方[互助码的填写规则](#互助码的填写规则) |
|
|
||||||
| `BOOKSHOP_SHARECODES` | 京东书店<br>互助码 | 非必须 | 10/ | 填写规则和上面类似,或见下方[互助码的填写规则](#互助码的填写规则) |
|
|
||||||
| `JD_CASH_SHARECODES` | 签到领现金<br>互助码 | 非必须 | 10/ | 填写规则和上面类似,或见下方[互助码的填写规则](#互助码的填写规则) |
|
|
||||||
| `JDSGMH_SHARECODES` | 闪购盲盒<br>互助码 | 非必须 | 10/ | 填写规则和上面类似,或见下方[互助码的填写规则](#互助码的填写规则) |
|
|
||||||
| `JDCFD_SHARECODES` | 京喜财富岛<br>互助码 | 非必须 | 未知/未知 | 填写规则和上面类似,或见下方[互助码的填写规则](#互助码的填写规则) |
|
|
||||||
| `JDHEALTH_SHARECODES` | 东东健康社区<br>互助码 | 非必须 | 未知/未知 | 填写规则和上面类似,或见下方[互助码的填写规则](#互助码的填写规则) |
|
|
||||||
| `CITY_SHARECODES` | 城城领现金<br>互助码 | 非必须 | 未知/未知 | 填写规则和上面类似,或见下方[互助码的填写规则](#互助码的填写规则) |
|
|
||||||
|
|
||||||
##### 控制脚本功能环境变量
|
|
||||||
|
|
||||||
|
|
||||||
| Name | 归属 | 属性 | 说明 |
|
|
||||||
| :--------------------------: | :--------------------------: | :----: | ------------------------------------------------------------ |
|
|
||||||
| `JD_BEAN_STOP` | 京东多合一签到 | 非必须 | `jd_bean_sign.js`自定义延迟签到,单位毫秒.默认分批并发无延迟,<br>延迟作用于每个签到接口,如填入延迟则切换顺序签到(耗时较长),<br>如需填写建议输入数字`1`,详见[此处说明](https://github.com/NobyDa/Script/blob/master/JD-DailyBonus/JD_DailyBonus.js#L93) |
|
|
||||||
| `JD_BEAN_SIGN_STOP_NOTIFY` | 京东多合一签到 | 非必须 | `jd_bean_sign.js`脚本运行后不推送签到结果通知,默认推送,填`true`表示不发送通知 |
|
|
||||||
| `JD_BEAN_SIGN_NOTIFY_SIMPLE` | 京东多合一签到 | 非必须 | `jd_bean_sign.js`脚本运行后推送签到结果简洁版通知,<br>默认推送签到简洁结果,填`true`表示推送简洁通知,[效果图](./icon/bean_sign_simple.jpg) |
|
|
||||||
| `PET_NOTIFY_CONTROL` | 东东萌宠<br>推送开关 | 非必须 | 控制京东萌宠是否静默运行,<br>`false`为否(发送推送通知消息),`true`为是(即:不发送推送通知消息) |
|
|
||||||
| `FRUIT_NOTIFY_CONTROL` | 东东农场<br>推送开关 | 非必须 | 控制京东农场是否静默运行,<br>`false`为否(发送推送通知消息),`true`为是(即:不发送推送通知消息) |
|
|
||||||
| `CASH_NOTIFY_CONTROL` | 京东领现金<br>推送开关 | 非必须 | 控制京东领现金是否静默运行,<br>`false`为否(发送推送通知消息),`true`为是(即:不发送推送通知消息) |
|
|
||||||
| `CASH_EXCHANGE` | 京东领现金<br>红包兑换京豆开关 | 非必须 | 控制京东领现金是否把红包兑换成京豆,<br>`false`为否,`true`为是(即:花费2元红包兑换200京豆,一周可换四次),默认为`false` |
|
|
||||||
| `DDQ_NOTIFY_CONTROL` | 点点券<br>推送开关 | 非必须 | 控制点点券是否静默运行,<br>`false`为否(发送推送通知消息),`true`为是(即:不发送推送通知消息) |
|
|
||||||
| `JDZZ_NOTIFY_CONTROL` | 京东赚赚小程序<br>推送开关 | 非必须 | 控制京东赚赚小程序是否静默运行,<br>`false`为否(发送推送通知消息),`true`为是(即:不发送推送通知消息) |
|
|
||||||
| `MONEYTREE_NOTIFY_CONTROL` | 京东摇钱树<br>推送开关 | 非必须 | 控制京东摇钱树兑换0.07金贴后是否静默运行,<br>`false`为否(发送推送通知消息),`true`为是(即:不发送推送通知消息) |
|
|
||||||
| `JD_JOY_REWARD_NOTIFY` | 宠汪汪<br>兑换京豆推送开关 | 非必须 | 控制`jd_joy_reward.js`脚本是否静默运行,<br>`false`为否(发送推送通知消息),`true`为是(即:不发送推送通知消息) |
|
|
||||||
| `JOY_FEED_COUNT` | 宠汪汪喂食数量 | 非必须 | 控制`jd_joy_feedPets.js`脚本喂食数量,可以填的数字0,10,20,40,80,其他数字不可. |
|
|
||||||
| `JOY_HELP_FEED` | 宠汪汪帮好友喂食 | 非必须 | 控制`jd_joy_steal.js`脚本是否给好友喂食,`false`为否,`true`为是(给好友喂食) |
|
|
||||||
| `JOY_RUN_FLAG` | 宠汪汪是否赛跑 | 非必须 | 控制`jd_joy.js`脚本是否参加赛跑(默认参加双人赛跑),<br>`false`为否,`true`为是,脚本默认是`true` |
|
|
||||||
| `JOY_TEAM_LEVEL` | 宠汪汪<br>参加什么级别的赛跑 | 非必须 | 控制`jd_joy.js`脚本参加几人的赛跑,可选数字为`2`,`10`,`50`,<br>其中2代表参加双人PK赛,10代表参加10人突围赛,<br>50代表参加50人挑战赛(注:此项功能在`JOY_RUN_FLAG`为true的时候才生效),<br>如若想设置不同账号参加不同类别的比赛则用&区分即可(如下三个账号:`2&10&50`) |
|
|
||||||
| `JOY_RUN_NOTIFY` | 宠汪汪<br>宠汪汪赛跑获胜后是否推送通知 | 非必须 | 控制`jd_joy.js`脚本宠汪汪赛跑获胜后是否推送通知,<br>`false`为否(不推送通知消息),`true`为是(即:发送推送通知消息)<br> |
|
|
||||||
| `JOY_RUN_HELP_MYSELF` | 宠汪汪<br>赛跑自己账号内部互助 | 非必须 | 输入`true`为开启内部互助 |
|
|
||||||
| `JD_JOY_REWARD_NAME` | 宠汪汪<br>积分兑换多少京豆 | 非必须 | 目前可填值为`20`或者`500`,脚本默认`0`,`0`表示不兑换京豆 |
|
|
||||||
| `JOY_RUN_TOKEN` | 宠汪汪<br>赛跑token | 非必须 | 需自行抓包,宠汪汪小程序获取token,点击`发现`或`我的`,寻找`^https:\/\/draw\.jdfcloud\.com(\/mirror)?\/\/api\/user\/user\/detail\?openId=`获取token |
|
|
||||||
| `MARKET_COIN_TO_BEANS` | 东东超市<br>兑换京豆数量 | 非必须 | 控制`jd_blueCoin.js`兑换京豆数量,<br>可输入值为`20`或者`1000`的数字或者其他商品的名称,例如`碧浪洗衣凝珠` |
|
|
||||||
| `MARKET_REWARD_NOTIFY` | 东东超市<br>兑换奖品推送开关 | 非必须 | 控制`jd_blueCoin.js`兑换奖品成功后是否静默运行,<br>`false`为否(发送推送通知消息),`true`为是(即:不发送推送通知消息) |
|
|
||||||
| `JOIN_PK_TEAM` | 东东超市<br>自动参加PK队伍 | 非必须 | 每次pk活动参加作者创建的pk队伍,`true`表示参加,`false`表示不参加 |
|
|
||||||
| `SUPERMARKET_LOTTERY` | 东东超市抽奖 | 非必须 | 每天运行脚本是否使用金币去抽奖,`true`表示抽奖,`false`表示不抽奖 |
|
|
||||||
| `FRUIT_BEAN_CARD` | 东东农场<br>使用水滴换豆卡 | 非必须 | 东东农场使用水滴换豆卡(如果出现限时活动时100g水换20豆,此时比浇水划算,推荐换豆),<br>`true`表示换豆(不浇水),`false`表示不换豆(继续浇水),脚本默认是浇水 |
|
|
||||||
| `UN_SUBSCRIBES` | jd_unsubscribe.js | 非必须 | 共四个参数,换行隔开.四个参数分别表示<br>`是否取关全部商品(0表示一个都不)`,`是否取关全部店铺数(0表示一个都不)`,`遇到此商品不再进行取关`,`遇到此店铺不再进行取关`,[具体使用往下看](#取关店铺环境变量的说明) |
|
|
||||||
| `JDJOY_HELPSELF` | 疯狂的JOY<br>循环助力 | 非必须 | 疯狂的JOY循环助力,`true`表示循环助力,`false`表示不循环助力,默认不开启循环助力。 |
|
|
||||||
| `JDJOY_APPLYJDBEAN` | 疯狂的JOY<br>京豆兑换 | 非必须 | 疯狂的JOY京豆兑换,目前最小值为2000京豆(详情请查看活动页面-提现京豆),<br>默认数字`0`不开启京豆兑换。 |
|
|
||||||
| `BUY_JOY_LEVEL` | 疯狂的JOY<br>购买joy等级 | 非必须 | 疯狂的JOY自动购买什么等级的JOY |
|
|
||||||
| `MONEY_TREE_SELL_FRUIT` | 摇钱树<br>是否卖出金果 | 非必须 | 控制摇钱树脚本是否自动卖出金果兑换成金币,`true`卖出,`false`不卖出,默认`false` |
|
|
||||||
| `FACTORAY_WANTPRODUCT_NAME` | 东东工厂<br>心仪商品 | 非必须 | 提供心仪商品名称(请尽量填写完整和别的商品有区分度),达到条件后兑换,<br>如不提供则会兑换当前所选商品 |
|
|
||||||
| `DREAMFACTORY_FORBID_ACCOUNT`| 京喜工厂<br>控制哪个京东账号不运行此脚本 | 非必须 | 输入`1`代表第一个京东账号不运行,多个使用`&`连接,例:`1&3`代表账号1和账号3不运行京喜工厂脚本,注:输入`0`,代表全部账号不运行京喜工厂脚本 |
|
|
||||||
| `JDFACTORY_FORBID_ACCOUNT`| 东东工厂<br>控制哪个京东账号不运行此脚本 | 非必须 | 输入`1`代表第一个京东账号不运行,多个使用`&`连接,例:`1&3`代表账号1和账号3不运行东东工厂脚本,注:输入`0`,代表全部账号不运行东东工厂脚本 |
|
|
||||||
| `CFD_NOTIFY_CONTROL` | 京喜财富岛<br>控制是否运行脚本后通知 | 非必须 | 输入`true`为通知,不填则为不通知 |
|
|
||||||
| `JXNC_NOTIFY_LEVEL` | 京喜农场通知控制<br>推送开关,默认1 | 非必须 | 通知级别 0=只通知成熟;1=本次获得水滴>0;2=任务执行;3=任务执行+未种植种子 |
|
|
||||||
| `PURCHASE_SHOPS` | 执行`lxk0301/jd_scripts`仓库的脚本是否做加物品至购物车任务。默认关闭不做加购物车任务 | 非必须 | 如需做此类型任务。请设置`true`,目前东东小窝(jd_small_home.js)脚本会有加购任务 |
|
|
||||||
| `TUAN_ACTIVEID` | 京喜工厂拼团瓜分电力活动的`activeId`<br>默认读取作者设置的 | 非必须 | 如出现脚本开团提示失败:`活动已结束,请稍后再试~`,可自行抓包替换(开启抓包,进入拼团瓜分电力页面,寻找带有`tuan`的链接里面的`activeId=`) |
|
|
||||||
| `HELP_AUTHOR` | 是否给作者助力 免费拿,极速版拆红包,省钱大赢家等活动.<br>默认是 | 非必须 | 填`false`可关闭此助力 |
|
|
||||||
|
|
||||||
|
|
||||||
##### 互助码的填写规则
|
|
||||||
|
|
||||||
> 互助码如何获取:长期活动可在jd_get_share_code.js里面查找,短期活动需运行相应脚本后,在日志里面可以找到。
|
|
||||||
|
|
||||||
同一个京东账号的好友互助码用@隔开,不同京东账号互助码用&或者换行隔开,下面给一个文字示例和具体互助码示例说明
|
|
||||||
|
|
||||||
两个账号各两个互助码的文字示例:
|
|
||||||
|
|
||||||
```
|
|
||||||
京东账号1的shareCode1@京东账号1的shareCode2&京东账号2的shareCode1@京东账号2的shareCode2
|
|
||||||
```
|
|
||||||
|
|
||||||
两个账号各两个互助码的真实示例:
|
|
||||||
```
|
|
||||||
0a74407df5df4fa99672a037eec61f7e@dbb21614667246fabcfd9685b6f448f3&6fbd26cc27ac44d6a7fed34092453f77@61ff5c624949454aa88561f2cd721bf6&6fbd26cc27ac44d6a7fed34092453f77@61ff5c624949454aa88561f2cd721bf6
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#### 取关店铺环境变量的说明
|
|
||||||
|
|
||||||
> 环境变量内容的意思依次是`是否取关全部商品(0表示一个都不)`,`是否取关全部店铺数(0表示一个都不)`,`遇到此商品不再进行取关`,`遇到此店铺不再进行取关`
|
|
||||||
|
|
||||||
例如1:不要取关任何商品和店铺,则输入`0&0`
|
|
||||||
例如2:我想商品遇到关键字 `iPhone12` 停止取关,店铺遇到 `Apple京东自营旗舰店` 不再取关,则输入`10&10&iPhone12&Apple京东自营旗舰店`(前面两个参数非0即可)
|
|
||||||
|
|
||||||
#### 关于脚本推送通知频率
|
|
||||||
|
|
||||||
> 如果你填写了推送通知方式中的某一种通知所需环境变量,那么脚本通知情况如下:
|
|
||||||
|
|
||||||
> 目前默认只有jd_fruit.js,jd_pet.js,jd_bean_sign.js,jd_bean_change.js,jd_jxnc.js这些脚本(默认)每次运行后都通知
|
|
||||||
|
|
||||||
```
|
|
||||||
其余的脚本平常运行都是不通知,只有在京东cookie失效以及达到部分条件后,才会推送通知
|
|
||||||
```
|
|
||||||
|
|
||||||
256
gua_MMdou.js
508
h5sts.js
@ -1,508 +0,0 @@
|
|||||||
let h5sts = ["h5st=20220819141532391%3B7049079745387409%3Bef79a%3Btk02wbd2d1c1b18nz6t9ne8KxkjY%2BXoeBYompkEQI%2FWqoMbK8OLrkHwUnqtr%2FL65Y09IAuk2wCYI0IjUgT2P58AfxWSv%3B869f6e5c1b1dcf1c5fd19771c3648c4a4273767259c0d87292faa9ea096a5b73%3B3.0%3B1660889732391",
|
|
||||||
"h5st=20220819141532454%3B3032914064367073%3Bef79a%3Btk02w8e551aee18nz6t9ne8KxkjYJnHfj0%2BLU6nboV7tWYt8%2FbE1iNM0%2FUF761rzTAIlV%2BmHKMSXr4Nt7lZX4g8a34yD%3B57208e28dc6e3a49821a76ce1fb448b3b61a8520bfd543cdb82ceb35947b2a10%3B3.0%3B1660889732454",
|
|
||||||
"h5st=20220819141532488%3B1384759638111845%3Bef79a%3Btk02wacbc1bc718nz6t9ne8KxkjYiqI0kslmZJd5Z%2FpCBk92O05MgVzvfP9T5v31zNUovMQLd%2FF2wKF6JJXNPwjc2UNk%3B8b2475ca386395860b0c3453740d2708d379f1ffd6b6b633569406c1b7fabe2d%3B3.0%3B1660889732488",
|
|
||||||
"h5st=20220819141532522%3B6887643520128895%3Bef79a%3Btk02wc9df1cb118nz6t9ne8KxkjYfa726qDvqtAkvvuuCK6uHOHVuTOaKUdOS1c4M%2B1vLZzQyfe%2BAwuj9Ddf%2B7ukQ9bp%3Bb008308fae558e5c91ceab8a4e47816a3b733a152542f0ba2a1d01f9b22ea4f8%3B3.0%3B1660889732522",
|
|
||||||
"h5st=20220819141532554%3B5310838236972089%3Bef79a%3Btk02w9f8d1c0d18nz6t9ne8KxkjYT0YOcDRpo8HF5GKqMDKpZ62mB9zktxJqFU2FvAAA0u1odQxYuO%2B1UUxSZfmtWTBf%3B5308a1494abd3bbf7e6e12fd66112d4d0a98de4e68e85d87099d9e4d47f50a86%3B3.0%3B1660889732554",
|
|
||||||
"h5st=20220819141532584%3B7947361802719167%3Bef79a%3Btk02wb6891c8e18nz6t9ne8KxkjYnIa6sZUOcQd0aHV63ALSQhbpspfy3jKAO5FvKs452U65owgywgm2Cu2oqgncoIHB%3B920ad7a4819bea52001f8251d2c1d64232569cb237789bc445a338bb6fccd2f8%3B3.0%3B1660889732584",
|
|
||||||
"h5st=20220819141532617%3B3491655875112550%3Bef79a%3Btk02wc0101c0d18nz6t9ne8KxkjYMsUILjHMhwhzu9nPwNEB8xd%2B9Akdb04xMZc6qlEDFLAHEA5wsRAi%2FOonMoCr1%2Fz4%3B0bab37119f3be99fd6e7abf103b0443d07bf47e5439381b726697fc67626b411%3B3.0%3B1660889732617",
|
|
||||||
"h5st=20220819141532659%3B2220963824412854%3Bef79a%3Btk02wc7541d1618nz6t9ne8KxkjYldCbM6XN%2BSrMric84%2BHt7ZdjqZwqyT3fEcxfCsb3Xwju9OU3FOo6twkgsKqVQQJR%3Bf7783e3b8df3871b71d187a01a753bfa60e67de93c79102db6d3fbba31fad060%3B3.0%3B1660889732659",
|
|
||||||
"h5st=20220819141532693%3B6465535389701639%3Bef79a%3Btk02wdd371ca618nz6t9ne8KxkjYgGHyjbJvZSlIwz3IKgZpKHhFuzZ988BMClPwAxpmoHZRnDPuocuDYBiU4G9F354U%3Bddc8ea1c479cf90ca770931aa6803a9137e22561e6654c2fa2ce3cff77c76598%3B3.0%3B1660889732693",
|
|
||||||
"h5st=20220819141532730%3B6028681953702118%3Bef79a%3Btk02wa61f1bdd18nz6t9ne8KxkjYFBj2O1SjaNnsB%2BnAO8dMmwbyiYeT0%2B0a5ZNZ7QOXzfinc80vFh4mbBB4RWlZXkX8%3B2a9e4c9bd4166a4e69c1e4e8633d8ebafa5708857f829f9716407b769aa26399%3B3.0%3B1660889732730",
|
|
||||||
"h5st=20220819141532780%3B8517047363977960%3Bef79a%3Btk02w95961bb618nz6t9ne8KxkjYvh73yc6dSY77S3plW2N3IUFgQ38dp7Szy%2BHXPDz9y6BE027Obs6bgXaejghzPjj8%3B81283603d515b3bb0a6fc0de905c4bed863ecd08783501ae5f9c207bd66ed3d8%3B3.0%3B1660889732780",
|
|
||||||
"h5st=20220819141532813%3B1274538569604450%3Bef79a%3Btk02wc9c41cc318nz6t9ne8KxkjYPuMoyiHlCgebir%2FZSpL%2FJxz80rOH%2BU90gtRAjd3p0PP1GvtNd%2F5DeatjlQQvmnbJ%3Bd56b42c110b4e6f014750113bced4d4041239408c13c23339d4d5e0d4c62ef1d%3B3.0%3B1660889732813",
|
|
||||||
"h5st=20220819141532853%3B4286709824858334%3Bef79a%3Btk02w86071b8c18nz6t9ne8KxkjYSCTtw%2BE3EVCCOADEzr3IvA51mjUVVRHABQ74W%2FAJrNjLnFHkIZfEvL%2BaFroxyy0p%3Bcb676e03e30ec0102dbbd6b32d8b187ca2515b7212d1a9ce53bef67b6aadc9f2%3B3.0%3B1660889732853",
|
|
||||||
"h5st=20220819141532885%3B2329610958287324%3Bef79a%3Btk02wea921da818nz6t9ne8KxkjYVwOQdWjgwvlqPIR9OZapS7hNQvRmx5hGpcFUIH5ig%2Bpprno7dCZxAtRNfZ3fBuRw%3B70fbcfaef379412525985c3e97f01fa18a2e6c8f4343d104914370aea8fab621%3B3.0%3B1660889732885",
|
|
||||||
"h5st=20220819141532923%3B6169704831669325%3Bef79a%3Btk02wb1f31bc718nz6t9ne8KxkjYu1F9gGGwXofPSZ%2FXlLINOoV0dg3rHvUWWZTpt5IrUU8t8C6nX2OvQI74DoL4dfW9%3B546cc5057fefe8c3ca32d9e1588b1bb4a3839b086cc6335d18bcab937aa98004%3B3.0%3B1660889732923",
|
|
||||||
"h5st=20220819141532959%3B4630181845788521%3Bef79a%3Btk02wabe41c4218nz6t9ne8KxkjYFZVskMEZolLIOC4ZiZ%2Bm5S21QVLLszPQWWZEJBHOWv0v8SrKsVxo5djwIJhLTDRp%3B773be89c6ca579319eaba39fd50b8f864ecdf8447561965b9b61e75240a9a071%3B3.0%3B1660889732959",
|
|
||||||
"h5st=20220819141532993%3B2072285461171935%3Bef79a%3Btk02wab621c4418nVvMsiWuxQpPC%2B%2BZa2M3We%2Fyn%2BuEvJCXXO%2BuvfvhM1XB5NCqCbcXFMcE6mCxruxPDoO3k8tJlo2Mj%3B3477b4369d529eb21802983852c9edc81a18f8ece2769f3c758085b9771f65f3%3B3.0%3B1660889732993",
|
|
||||||
"h5st=20220819141533032%3B6395181421148710%3Bef79a%3Btk02wd5231cbb18nVvMsiWuxQpPCzX%2FxWaqg0PeAoWAZMbM1yifUh8XHqqUw6TEv7VU4D8fiOv0%2BeC8ZEmcSfjlG9lcc%3B9be18126b56b304b1dd31ea4e15bb712673606f17098ae9dfddfeca8aae8c922%3B3.0%3B1660889733032",
|
|
||||||
"h5st=20220819141533062%3B7798247740373632%3Bef79a%3Btk02wa0131bb518nVvMsiWuxQpPCDfVy64I33C9XePYTe2Nm%2BYdg3otxBMBma%2BK2iQ%2Bdo0eTts5fFsEMC7xJ%2BcAZq%2Bry%3B06d82ee26630582831796765ac21080f21d0f4c9bb8fa4bc8d1f03067ce34d9c%3B3.0%3B1660889733062",
|
|
||||||
"h5st=20220819141533100%3B9399033341582808%3Bef79a%3Btk02we4291d3f18nVvMsiWuxQpPC%2BgrqtcgkpvTW%2F20CmEW7BLnC4Yahl6uqqyOvAPmiTTxUTaeehwo39XdA1BM6cuEn%3B0407404cb961f21d3f6888661d620225d1a49cd292fb9889a9e7a1d8f669b0f5%3B3.0%3B1660889733100",
|
|
||||||
"h5st=20220819141533143%3B2210054768550957%3Bef79a%3Btk02we1711e1318nVvMsiWuxQpPC9SY4%2FbavAArC81abADIxamfyyMszSMnaPXytsQbkegs66tonieSgWaLrBvfcRORi%3B0ef7b63aeedda0acb653307595e467b823efbb77b17344a36fc5d1bd53f8edd9%3B3.0%3B1660889733143",
|
|
||||||
"h5st=20220819141533192%3B0843695316173720%3Bef79a%3Btk02wb2901c0d18nVvMsiWuxQpPCVQCU5AczuI3G%2BQC0wRRNNVNGpWDgyQVWRaFHk%2FwsEmLNSvjAWhmgJBm7QFWx52PG%3B0a5a5112394c53e2aaaeee42c0ccfa3f5bf2f46ec212eee95c2ee945cd3840c7%3B3.0%3B1660889733192",
|
|
||||||
"h5st=20220819141533240%3B3216087845444432%3Bef79a%3Btk02wbd941c9118nVvMsiWuxQpPCS%2BXfKZvLSaK8sQXDoRDTYFca8wCHp%2B1M39hwGquKzRdZn7TPIi5cyee2VCgJv1mx%3B861e103bcf4b1272c031bd04f4afcc35f1be109bb43e39a339db886c83635786%3B3.0%3B1660889733240",
|
|
||||||
"h5st=20220819141533288%3B3501944983883621%3Bef79a%3Btk02wc0e31ba518nVvMsiWuxQpPCUHlpM7xXNXigh2h3QuWAw0y5gnz888%2Fpb0v18OsOAVQ1%2Bhed6FQXZpN8FBiThK8%2B%3B02388b4e73a70c250e03f8e7c17234a84882b27b8eb1f9aee82be87932ee3a66%3B3.0%3B1660889733288",
|
|
||||||
"h5st=20220819141533341%3B9264476105799227%3Bef79a%3Btk02wa1821ba518nVvMsiWuxQpPCNcRHDww3M%2FDikVP7FpQ2uX3dDt2FU0o0EZWDInX0J6gE%2BBHr4VThocJOPedayfj6%3Bc2b4d95c16bc70c24ba759fb84fa232fec6d0e2e3a801bd38eecfa31bf4d58e6%3B3.0%3B1660889733341",
|
|
||||||
"h5st=20220819141533375%3B5502934587276074%3Bef79a%3Btk02waf171be218nVvMsiWuxQpPCdGNWYZ8abB11%2Blb9TPSi6vujGqY1TzXpO7OSV5FIfRs3OcrJ5LvVT08JaURQy8iZ%3B0249d0c6fc8c44ab398ccc912eef90847ba8be6e1afd8a4ce38c8a2d61907350%3B3.0%3B1660889733375",
|
|
||||||
"h5st=20220819141533412%3B9604962065174429%3Bef79a%3Btk02wb7361c0c18nVvMsiWuxQpPCYp27vO5F1z1cZb%2F%2B8hKpexwldVvkXGYLa66DRjMSoKlo%2F6GHNwx%2F97Y63Qv2tqIs%3Bce0b90f4c03fb362701d84da24d10f64b346e695bc840dac83884068b07f93a2%3B3.0%3B1660889733412",
|
|
||||||
"h5st=20220819141533450%3B2620091387410507%3Bef79a%3Btk02wec9c1cc518nVvMsiWuxQpPCtimfT7fuuO6nRw1XTVyjD7KjuDUpBwcgXpUkBCBp0Rfa16r9gq4R4XiJB5i1UIOe%3Ba7cd65d54d0f709046853dc92d6339bf498e0897e22e17c8817fe1726ac0386c%3B3.0%3B1660889733450",
|
|
||||||
"h5st=20220819141533483%3B2116276483029948%3Bef79a%3Btk02wc1931cd818nVvMsiWuxQpPCvUDUd0vhFfuqHWNGU8LMF51fL5qH72ih%2BDRHsZZglc7uRwyL3Ixr1dlqwByvVvO8%3B9875eb025971a8e9e44720c84bba157b56ec295416fb0362ed00a70e40272cbd%3B3.0%3B1660889733483",
|
|
||||||
"h5st=20220819141533513%3B0438596802420114%3Bef79a%3Btk02wc6ec1cda18nVvMsiWuxQpPCHTPMSKCRmcX2JeYQkWz7v6r36GZlBTKhTUx1KpdSQBhxcpwOxgs9PyT0kZOBMUdJ%3B54f3cf9f7ce3f3fdae14a46e574d41f6d0e7cc9c565d6bc4e9f69448e7327b01%3B3.0%3B1660889733513",
|
|
||||||
"h5st=20220819141533544%3B9622890143029657%3Bef79a%3Btk02wb1491be818nVvMsiWuxQpPC4lc410fw%2FdCuPogX8EBsf88YkkqpE7%2BQcjSECODu4a3jQuMHrn7OjJHm51mN%2FhnK%3B3e7ffdde8cfca861a767af8b3e3ce81f6f9ee41d3ee69b15e0ddcdcb5a5ec74e%3B3.0%3B1660889733544",
|
|
||||||
"h5st=20220819141533577%3B2453918782027863%3Bef79a%3Btk02wbd8a1c7118nVvMsiWuxQpPCEiqVKEodf5jECcWDLTE0hm%2BZg4suQS1Jd93aV7qHxcchHQYt5FUJ77dWeSmyRXlf%3Ba87f904f468d32b4709005ebbd8fec0602f79fe63b2abc8c572e1903fef2521c%3B3.0%3B1660889733577",
|
|
||||||
"h5st=20220819141533620%3B0640444479566328%3Bef79a%3Btk02wad0b1bc318nVvMsiWuxQpPCD90CwKxTh3Zeejk05cZ10DpDN7ZQiJEc3zbKxce9Mg1bWWXsRSZD3wADUpCcU6NE%3B1f79136b782d89c34b1f71f165d689c3d42548fa8a5558864425fb6532846932%3B3.0%3B1660889733620",
|
|
||||||
"h5st=20220819141533658%3B8019438435464381%3Bef79a%3Btk02we1881c9b18nVvMsiWuxQpPCwX4ulNpZZmt2RAHskYSyC2t2qHbQual5BXoG0kWWJw0VKH8giczGlK09gaKc6R%2FM%3B644cd3cfb36ce11704da3955b727da49b73ddbd32d8fbae23e575b464d9b6f16%3B3.0%3B1660889733658",
|
|
||||||
"h5st=20220819141533694%3B9631747874599251%3Bef79a%3Btk02waafb1b1e18nVvMsiWuxQpPCVCulVEdCnGOtYCaErODMhOZ%2BFOOEVXR1wDXK56i37Cx%2FODAcD%2BGi8WQq9EQX5rYO%3B41450d0b474a451df60227cd68b9ec1a58763b5a2889beb4f9cf779c5ce3130c%3B3.0%3B1660889733694",
|
|
||||||
"h5st=20220819141533728%3B1167090158207968%3Bef79a%3Btk02wcf6f1c0618nVvMsiWuxQpPCznd7ZiJh%2FwUViFs2eeIMOzS2XTJTOO4fb6UCP7an9oulXxq%2FSBAUHMBBRXeCW65E%3B2a674f1163eb205dc68b76a45c392b5017407fc74f0b52ab4bed21c76ff260d7%3B3.0%3B1660889733728",
|
|
||||||
"h5st=20220819141533770%3B5851469328541416%3Bef79a%3Btk02wcd9c1ca118nVvMsiWuxQpPC11hkhn7RXk6xbZv9ipGpalDdre1n7FxE1UT%2BES6FroRi7RH4iGMAlpneFKh95jru%3B7b947c008b2f2874a38361b0629b64eda8091d230a8569c06c6790fcbbc2f214%3B3.0%3B1660889733770",
|
|
||||||
"h5st=20220819141533810%3B8526173309770952%3Bef79a%3Btk02we52b1d1d18nVvMsiWuxQpPCXsUCgiQYtmka7cDQX7Sh2S6vDrJyz9EwhgPcWeOWQWu7eB8qAPzx9YfabUXWK8%2Bl%3B0031796c984cc1cc2bbbcdbf6f8fdb21099e776596db2f43051ec55adfd59cfd%3B3.0%3B1660889733810",
|
|
||||||
"h5st=20220819141533850%3B6898324217584388%3Bef79a%3Btk02w9f4c1b4818nVvMsiWuxQpPC3wWU%2Fpi%2BmUUlIUXA%2B87IZ5E0sOJg9PfDNtY5li3aNCIpCDyU9tvjEDbTX%2F%2BX9p1S%3B7c286510c16b002e9e71527a1a5b54b946d126018dca4c5df58227799c9b8ea3%3B3.0%3B1660889733850",
|
|
||||||
"h5st=20220819141533886%3B2617447377483770%3Bef79a%3Btk02wda811d4318nVvMsiWuxQpPCsSkDv3wb3d9XN5TNSAveES27ZlvPZgbDsRsomirWjeXPPZX%2Fv3aNvMavS0feN1Yy%3B383dc795405fb7240e9a52cfcd137780afefa6828f8009438cb886aa3c4ca420%3B3.0%3B1660889733886",
|
|
||||||
"h5st=20220819141533919%3B8342001006257560%3Bef79a%3Btk02wbcff1c3118nVvMsiWuxQpPCMLXcGl9ICWwDftVWYw9r6UTJ08NT%2FbH4AcjWMYakkrGdhfODffLyIGMH8kdNIEk0%3B1aaee31fa8d658f3c262b66e16ad3639a5abedd97026f797183ceb12ef604ad6%3B3.0%3B1660889733919",
|
|
||||||
"h5st=20220819141533952%3B1365527943334845%3Bef79a%3Btk02w91131b2918nVvMsiWuxQpPCuHQ49OP7AhIj3LwOWAb4E6Nbbi6gAoK36i%2B1FXxiX405l2xqC6J0umTlwc2LbM3j%3B543d7fc6659fe8eda0ed4f9129f679cf0798d306b5e7fdb132e51c68252c654f%3B3.0%3B1660889733952",
|
|
||||||
"h5st=20220819141533988%3B8201495863080164%3Bef79a%3Btk02wa3741bc818nVvMsiWuxQpPCbegt4TZF5ZRSo33iLH3jdi35GWvJZK%2FY8XB0lL4%2BMz81rb2qR9JrVbtT2TnzwWLo%3B3439544587ee6d23d611e5e19088c32a94537cca174c3f27a3fd1e73ca6f1b9f%3B3.0%3B1660889733988",
|
|
||||||
"h5st=20220819141534031%3B7632904211627384%3Bef79a%3Btk02w8b951bd918nhq5hJFmP9ZPMX0IGNFEgam26AnwDoRMkDy7aKgR5gFn%2BsWUrwXlUfU%2B2705tCnfp3ZJBufpiVClo%3B5eaf449f93c896e531afa32dca2a321cad1a5b54d35f9fa6e9bdf189d0a4e1c4%3B3.0%3B1660889734031",
|
|
||||||
"h5st=20220819141534058%3B9430587472226223%3Bef79a%3Btk02w7a7a1b4b18nhq5hJFmP9ZPMFy25HQHaNfJ36Mu4qURjFajD6OSJf3npDR60qoI%2Fxu0vH1wExIaCKP1jd5UdzUxC%3Bd5f6117424ffd9519f1654614eb904be5c1b1b0602c13c7e66756af5ddf31029%3B3.0%3B1660889734058",
|
|
||||||
"h5st=20220819141534091%3B5149387067057653%3Bef79a%3Btk02w75e31ae018nhq5hJFmP9ZPMGHM%2BCQ%2BDvnF6CKZ6lUbosYE3YaJYM2eisyRO9snl2ITgMCN1%2BWHLLuM3WhZEaXKD%3B1c3f66f4d09ef2d7d56b4505d072e20000649dbad04693a2bbaf73634c88398f%3B3.0%3B1660889734091",
|
|
||||||
"h5st=20220819141534128%3B7791822444260772%3Bef79a%3Btk02wc4cd1d5b18nhq5hJFmP9ZPMbIk5BPcxnKiuSpDLTmWLpdAsWaL3DQy8RJzrGtaWtdijAaZHuqU2Otz3mXdoXWgX%3B39757ab39de86a3bbc29d2b0d76dd94e9c4d2a00472c48e13674c988156fafea%3B3.0%3B1660889734128",
|
|
||||||
"h5st=20220819141534162%3B2836772010114901%3Bef79a%3Btk02wb8a61cdd18nhq5hJFmP9ZPMY62vWJ9YsulwaBSqxygsSemDMBJs8%2BLT0KtvUoJkk%2FJ%2FMPiLm7fiZUwnpCuPDEwy%3B31f3896e5dcec2bd82e49ca57f6c75a5f29bd0d8ff311bc91d606d704a9ffa1a%3B3.0%3B1660889734162",
|
|
||||||
"h5st=20220819141534200%3B4361955928224441%3Bef79a%3Btk02wc3ab1d0a18nhq5hJFmP9ZPM2LVr3z4UsEpdYrFkuczhclCbF0xZrx83ZqPm5%2B8zwsTqtKPul5xEA7IPvzru8Lj7%3Ba9a90ebed6156ec7746ecc2d42484d7515b03f69feba844a1ca038d2116a3ef3%3B3.0%3B1660889734200",
|
|
||||||
"h5st=20220819141534233%3B7144063211914505%3Bef79a%3Btk02w83231b2818nhq5hJFmP9ZPM9n41yiVfM0h3Emm6S7NnHl22Z9iMbYQvyi27EBj3oxRx8klbI1JG1Ceb3rg9qw%2B6%3Bb581a462b4d4dc48b68fdf3779626131b134f608f3d0f6243121382050786449%3B3.0%3B1660889734233",
|
|
||||||
"h5st=20220819141534265%3B8059430628366332%3Bef79a%3Btk02w99301bde18nhq5hJFmP9ZPMSSlmDfnP02xgC4Wr9kLGhFDJpHIJxjP8aXaAc3UY7VxfS8cNK4si%2FvyBjCzio1NL%3B09dacf73c29e7fe0017ad2c6aa2da2081627ba8cb2c452178a4d73228f2192cc%3B3.0%3B1660889734265",
|
|
||||||
"h5st=20220819141534296%3B6685423144798455%3Bef79a%3Btk02w85a31ae418nhq5hJFmP9ZPMdBISxdYBfyVWG9470RjJHMQOqL9cATP2gycYxi82DUsXuUY295k4D5j4U6dgVjC9%3Baa64dd9a71eb44adc02015a59c73516040e8c655732e592ca6aaa1c14b38656d%3B3.0%3B1660889734296",
|
|
||||||
"h5st=20220819141534359%3B0192621208352029%3Bef79a%3Btk02w96451be118nhq5hJFmP9ZPM0O4tr0RGeXXqytw36c1JkDLDkmLAMa5%2BPkmiKw2vf5efqFTVCGYYvy23Pc4vs9Jt%3B695e5a92e2a193b76b85aff26c9ed9ee07928b6983ea5ec35bc92ffe603ef54e%3B3.0%3B1660889734359",
|
|
||||||
"h5st=20220819141534397%3B8396724405875141%3Bef79a%3Btk02w7b8e1b8b18nhq5hJFmP9ZPM4G%2BvANgEWSdEm5QFxPG%2F%2BuF2OshqK%2FUx1pkXOW%2F1DgaKGutqp7cAchdIV2SsRtLh%3B60466a073b30c006bfa270130ca25a127684be5183c7017ec8eb54bfe3a6604f%3B3.0%3B1660889734397",
|
|
||||||
"h5st=20220819141534430%3B3818199542803767%3Bef79a%3Btk02wc8401cb918nhq5hJFmP9ZPMxeko%2BPcfTT%2BHhqbZRRelShZ1iEfuJigxXdq%2BpXaVCx5rUTid4YjJD4mOxoIF0LRM%3B22b71aee6ee4247eb76643d6be37bdc83e160d1336b387cf8fc95c8dd3e45eba%3B3.0%3B1660889734430",
|
|
||||||
"h5st=20220819141534459%3B2891620585800802%3Bef79a%3Btk02wda381dd018nhq5hJFmP9ZPM4vrdtLe9jkl9d5uCyfVr0Kzee%2ByskjsavgO7tnMRXo3NVnUAqVG3qsn5rpUxJrda%3B1cdb478bfff7bb93737ccc6244165d9601696dcee3fcdf45742bd816396fbbc8%3B3.0%3B1660889734459",
|
|
||||||
"h5st=20220819141534493%3B7838092514044885%3Bef79a%3Btk02wb2a31cfb18nhq5hJFmP9ZPMRFPnAass%2BVyxi1ahIK4Wh%2FUcBsO23CVtamowOLfhgvSqmAa9iXiIcN%2FqegxU4iix%3Bdb7823af2bdb94e7f46b7b95c59d6737385b2e4b0fdbfbb54cda75ea245f97d5%3B3.0%3B1660889734493",
|
|
||||||
"h5st=20220819141534520%3B5475230488745854%3Bef79a%3Btk02w9da81b7618nhq5hJFmP9ZPMBFpeVtYWTsS22JUJffg7DqEWphuZQ8Q2r8npQ7%2FnjCxa1FOkZsFOKj3974Gvq2d1%3Bfb47d02202545a0fe98aef9142b2048c6de9c322229902540d4a6702e3278699%3B3.0%3B1660889734520",
|
|
||||||
"h5st=20220819141534547%3B5569665951029539%3Bef79a%3Btk02wc1951c7c18nhq5hJFmP9ZPMCSxgB8finFdxPw%2FiBjU%2FfgIogoTtex8P8vTfS2sxOjcw9VE7xMIIyDdHn9T6GUOB%3B4b94b007d0e21e46bdc2c18b5f8dd026c610d7bc23a80d1d8fa05062dc2cfd09%3B3.0%3B1660889734547",
|
|
||||||
"h5st=20220819141534578%3B4075792183307845%3Bef79a%3Btk02wc0011caf18nhq5hJFmP9ZPMPI9oHFgvj1Ka7qpoqSmKtq9Ojbb3vy%2FQz2owDGvIzwKs%2BVuhUl6ASeTmk77LmQL0%3B530d9f1b73c4da8fde51ba222fb4c09ec942a1520b83877efb9d9617b7233151%3B3.0%3B1660889734578",
|
|
||||||
"h5st=20220819141534606%3B7368400113971932%3Bef79a%3Btk02w7eed1af318nhq5hJFmP9ZPM8mfZczHHGhTp%2FJ0e%2FiqnI2h9XC3FFGHEk19%2BAMzFAxTu9fV0xEnbQfG4k6aDkDnE%3Ba2eb1f6c21c909cd6b9a7e0bca1b75ccd016fce07193c8f85fa5527e4df282e3%3B3.0%3B1660889734606",
|
|
||||||
"h5st=20220819141534633%3B0683540097097072%3Bef79a%3Btk02w6d551ada18nhq5hJFmP9ZPM3ONJtGFOXvWP3B6h3QCR%2BNbDbMPBL7fsCzmR9TciYWVK21AyVR0bGaqNEJJmVZQe%3B75f1c4089cc296c729566d32c33b8f4d4fa57799d8793f9115135f9e7f8a83e9%3B3.0%3B1660889734633",
|
|
||||||
"h5st=20220819141534663%3B5444982517082248%3Bef79a%3Btk02w96d41c2118nhq5hJFmP9ZPMI4j8B1BipOKew2pVXG1oVofflLVLMOlWBrmHv2iH7SgyPOR30ZjOGgastQrUWpFL%3B1652818571a4cfbda499575a2ff0ce154688a8d6625574fbd0f67b82a7362c01%3B3.0%3B1660889734663",
|
|
||||||
"h5st=20220819141534690%3B4828631975060475%3Bef79a%3Btk02w933f1b4518nhq5hJFmP9ZPMOSr4Tw65%2BNOaUSNnwAPtZHHZoSc8aHbHRQaiRkyVho1ZGFL2wJ5EEtkp%2BMvH090C%3B7476e7e17f98237ecbd075cf0ab9f727addee639ac6923b249400aedd4626016%3B3.0%3B1660889734690",
|
|
||||||
"h5st=20220819141534718%3B0209061238742399%3Bef79a%3Btk02wb30f1c6c18nhq5hJFmP9ZPM8imjIVeqLuNnnIyI3bc0ZTIDnHEXQIjCLcNGnqid1uf%2FNSbWaZQsy4fQG6uK4rtJ%3B025bd83b585d2640d435f0f9064f9b2350ba8c85f53d798c4363786f005df703%3B3.0%3B1660889734718",
|
|
||||||
"h5st=20220819141534748%3B9407095951825759%3Bef79a%3Btk02w69ae1b0118nhq5hJFmP9ZPMJaUHG%2BTOAX7h%2F%2FuOFYdAqMdMZgWGKk13Y6PQECH5AU%2BQg0ZfxqtjRwKGqyZ2IcrG%3B326b7b1d731ceabc3e34f9193ad00e545f589b71a3e488f05c571e00eb6b7e09%3B3.0%3B1660889734748",
|
|
||||||
"h5st=20220819141534782%3B8843064454955593%3Bef79a%3Btk02w98a21c0118nhq5hJFmP9ZPMO%2BlEelxDQURp6g4eoN%2BEKoGZSsP09ppvvB%2BDxJ6ordj06fGMD%2FsqoFRsJEPbnPeh%3B3993b48e401b901975491c8fad4dd25548303c1b167bec5b4798101c22fccda6%3B3.0%3B1660889734782",
|
|
||||||
"h5st=20220819141534816%3B7272401685499396%3Bef79a%3Btk02wb36e1c5d18nhq5hJFmP9ZPMTioJijXbLTWsrTVvVkKpdoCq2303s7JH%2BoO3RNmc2rQ7ao6oCjlDMIZiOhvGQxSa%3Bb1e508b1359da10f217c67cda977158882bafde7a5373f33ea542512fd585d29%3B3.0%3B1660889734816",
|
|
||||||
"h5st=20220819141534852%3B3229187207400633%3Bef79a%3Btk02w72111b1818nhq5hJFmP9ZPM6%2FETl%2FguYN5TBDLmqqFmMGHl%2FCUWBSRF06WN7IRPHLjzNIW1QjaQznWFyjRac9TM%3B47a47fb6e195d97057837af2a15b88986ee508b552dceda158519291cb41c6ea%3B3.0%3B1660889734852",
|
|
||||||
"h5st=20220819141534881%3B0569796234800707%3Bef79a%3Btk02wa0c41bcb18nhq5hJFmP9ZPMV1yrqFZRe4qNe%2FgRO%2FajUGhm7eAQN2%2BrqBbSto7RqNKJqdlhuV0359snKMVKqK8N%3B1b3b323b6bd573930458b96a3d4485a84e930fc012c526ec59f2f8f38f60caae%3B3.0%3B1660889734881",
|
|
||||||
"h5st=20220819141534906%3B7475026983686933%3Bef79a%3Btk02w99b71bb318nhq5hJFmP9ZPM45JUc6blMPJFrwirg5D4iBlUdlVeVA55VcckpzlFvdGR3I4mFhMExGhf4%2FIuY%2F5f%3B8b3342fb8fc826815f80aa48388d2060774160fa14196cf232f2976e6e7b18cd%3B3.0%3B1660889734906",
|
|
||||||
"h5st=20220819141534936%3B9640874564431133%3Bef79a%3Btk02wc4df1ccc18nhq5hJFmP9ZPMMa%2FIlZGdwiQbDg%2FRrbsKKJjjotHwZvylGSDpvx0r5qEpRzd6iC2X8D3oCMWfkBpD%3B807fc21c5fa33379720abb1a40222771a6cce20e724a564713acada7b46eb127%3B3.0%3B1660889734936",
|
|
||||||
"h5st=20220819141534965%3B5138800204724660%3Bef79a%3Btk02wa7cd1bb418nhq5hJFmP9ZPMFzSuiZoiVuHThk6R6la0w2n5M669dRJBpYYi8usDNA9VcNItLzJZZFL7w%2Bj1Cl3r%3Be9630e12c569b669ea291f5f43f58d0fc135642383cbd09a58baa7928090ffcc%3B3.0%3B1660889734965",
|
|
||||||
"h5st=20220819141535003%3B4417248354863442%3Bef79a%3Btk02w84d01be618nEkn6aTIDXAlXG011Px4SpRMtmO9GPXeWGuAmc3x4%2FAyeHD4vfaBFrwlMT1hvA5f1WwWsxY5KpirS%3B2fe24fa9d6ee7e49726a1b69924a7a2810bf0c14aa796be877eecac456f63fd9%3B3.0%3B1660889735003",
|
|
||||||
"h5st=20220819141535039%3B1491196602863548%3Bef79a%3Btk02w8b861c0718nEkn6aTIDXAlXUYu0HGQbGA37ItjEzoC0sv6CIVgpiAA1GmiZ4%2BIj1qqp1qw7gdUwIVr%2Bsepq6kAw%3Bed7a3ebbf064d65fb37a28ec5fe3cb891285081f40b3368d03d89fdd26f9ca18%3B3.0%3B1660889735039",
|
|
||||||
"h5st=20220819141535073%3B8404725146463075%3Bef79a%3Btk02w91861bde18nEkn6aTIDXAlXruZuc5H2c6WgRN8NW19W8IuvQUG9YHdz0yp49JDxsCPs8QMqCxfLBlnYe9S9xsv4%3B2c7ac040fed701d0d4441a19cda823a824b94ae0f5206b41e370b61347dd084a%3B3.0%3B1660889735073",
|
|
||||||
"h5st=20220819141535109%3B8912463217057874%3Bef79a%3Btk02w729a1af818nEkn6aTIDXAlXrWAUCDwL00Y3MK80kqHPn240Exo7vX2OvJwWP76oTDXIacwEGpcleLpv%2BQ%2BF6FSj%3B72e59564153f7206e4c89dfc6e1ce49bc1778adbc20bc6bed8fc7bae580998a3%3B3.0%3B1660889735109",
|
|
||||||
"h5st=20220819141535141%3B3373767405943888%3Bef79a%3Btk02wc36a1dad18nEkn6aTIDXAlXPEbRtT8GiEdRqL64rgcWuyYWJiBIuoppI1vfLlki5tvHoNqrvjCrLQOzufB9Awyq%3Bdb809685d8b303cf54799b3c22265f624cb56b9006b41a3dca386b2ff802fbc4%3B3.0%3B1660889735141",
|
|
||||||
"h5st=20220819141535171%3B4760324441779693%3Bef79a%3Btk02wca911cce18nEkn6aTIDXAlXMJtSeonvaqzkha5pKIQ2jlwE4%2BOilaWJJJAP%2Fynbnn4sDoRnUUR9hXvFzZvY5FI7%3B57ab96987072be07478061178b00b6b8251e53b9c3c9ef7f63b1ce08223a711f%3B3.0%3B1660889735171",
|
|
||||||
"h5st=20220819141535208%3B8741443029799766%3Bef79a%3Btk02wb12c1c1618nEkn6aTIDXAlXXy4ILxPu%2FPVkp2IhYwwtXiZi6pna0CPf5QsAAEtr3Rdc8Shza19Z6jWYR12K7ayg%3B9e697b8b05f8723c8e99f3b6087c2a26a888bb090ebfa30c0e5cd5a650429295%3B3.0%3B1660889735208",
|
|
||||||
"h5st=20220819141535245%3B5320634841493952%3Bef79a%3Btk02w7c2a1b0218nEkn6aTIDXAlXMcio%2FAvX54BqY6ebEZV8P21Nre%2Bm8t0GEtScNOiT7PLnE6s%2FmOsrfV6R7F7ZotS7%3B7e17eefaf49f2ba87cbc02181b6eb08fe331cdf72eec38924be2630066edb7ef%3B3.0%3B1660889735245",
|
|
||||||
"h5st=20220819141535277%3B1211710598230467%3Bef79a%3Btk02wa93c1c4e18nEkn6aTIDXAlXPlDR7kCqTXiQ2erICRYwcBf1QqgVoocm8cYLu4HFrQHta4PbTM8rULPKYKLvo5kd%3Bc5fcd6de2eaae66db8ec21eb3dfbb3e7d18579506147b927137c40fcfc72159c%3B3.0%3B1660889735277",
|
|
||||||
"h5st=20220819141535308%3B5554195038866683%3Bef79a%3Btk02wa2461c1118nEkn6aTIDXAlXT5flFyOeT%2Bg8QoZqCqiXdHswI56wTATaOgyH39z%2F1tw894MCq%2BfDmYCugrnAUCcs%3B0bb668089c0cee00eceaf07540ad8c0faf95bee5495acd9b86f3289c5df1626d%3B3.0%3B1660889735308",
|
|
||||||
"h5st=20220819141535340%3B9996160592435189%3Bef79a%3Btk02wa7b01c2a18nEkn6aTIDXAlX7%2FMkeNhTRCRxzHjUKjvujVX3mV0pj4j3MLmeA2yJa4uGKw4dGIzhhFCyB%2BsK7eoS%3B7db14847d3282ad3cec8941745e7282b1e6799c3f4637e1dffe90223aa8b6fde%3B3.0%3B1660889735340",
|
|
||||||
"h5st=20220819141535376%3B1308445555488780%3Bef79a%3Btk02w86cb1add18nEkn6aTIDXAlXIZfM1voKZScPY6O5zCOttP7Oi1FQ%2Fy0aMAMmlAJ6Ke7qj%2Fl08LfXuFNXpS1IxH%2B%2F%3B5d079344798146725bd6fad1dc8b30e3a6cfe018ee493f4c61d4f332986457fc%3B3.0%3B1660889735376",
|
|
||||||
"h5st=20220819141535419%3B3073602608410279%3Bef79a%3Btk02wc3b11ca818nEkn6aTIDXAlXLeSRkW2hatGcYu9WlUzz5LpVCoAh3OrcvubxQg8Jwpf49jHG9mmmRGTCc8sr8h%2F7%3Beca113e5a0a9202858e72c7357703364a7ce9460c80f8d6dea6e77e1d9f24ac3%3B3.0%3B1660889735419",
|
|
||||||
"h5st=20220819141535464%3B6298233867403289%3Bef79a%3Btk02wb0641c8018nEkn6aTIDXAlXc7X2RSEy7gIxYYtZFZdHl5LdpoBUXdZrvpkccWq5WUtO0lWCYa8%2Fq3zBnJDUVyWK%3B5789778bc22d4afd96003c4b2a8c857fa317f6042a5afc65a4883559d5ff29e4%3B3.0%3B1660889735464",
|
|
||||||
"h5st=20220819141535502%3B7117196678047729%3Bef79a%3Btk02w76c01ae918nEkn6aTIDXAlXnOPx%2BXUCP0nAiTNHN%2BDq1%2FNBmv2DYne4e8XSs3Z9CGERLoYkhxbqG25Cobdw20%2Bo%3B173fbc7cccdfeee5de3c21a382028ef7a2e6d12545054ffb07c1a9a00c1ca436%3B3.0%3B1660889735502",
|
|
||||||
"h5st=20220819141535557%3B2084221538272786%3Bef79a%3Btk02w8a2e1ad718nEkn6aTIDXAlX8bXUBP2nJrHOstRl2RFFLJw%2Ft%2BjYwrTLWgYFc61mE1O9gsKWJBfKs2B0c3%2BJ4ev0%3B55db7fa44df61f0f36611ab0d4538b34553cbaf516f153c9cb9bc46d91ce3df1%3B3.0%3B1660889735557",
|
|
||||||
"h5st=20220819141535597%3B5820473519658562%3Bef79a%3Btk02wab2f1bde18nEkn6aTIDXAlXeFt7qYTxsI12QNZbvPGeUVLp0QZumSaXYkmVRqBLI6Ke6MmqjO4Eib44cMMxL59W%3B223800aede1316cba875ebd19db61a3d8d500f986295f5fea748153096586dfb%3B3.0%3B1660889735597",
|
|
||||||
"h5st=20220819141535631%3B5409342112815642%3Bef79a%3Btk02wa0791b4718nEkn6aTIDXAlXwX3vcauU7u1hUCDCQfaDmHbKNtIUtZo3RNn%2FqPWR3MxDJFaTCGD1Py7Y7Rg5%2BRHb%3B8a14b5084a991acdca9eeef68e02275c55fd4eff1ffad4e2ee5362519dd9a12a%3B3.0%3B1660889735631",
|
|
||||||
"h5st=20220819141535665%3B4495314248717622%3Bef79a%3Btk02wa1ed1bf218nEkn6aTIDXAlXXyd87xfxwwjDSF%2B3ARZzBx1A%2Bm60dk47vm2rzVREo%2FeJZQhxSfJsPYg7V5tR%2BxZF%3B56fbd8e57afb5afaf1d10b3b0d6c342046d30f09960d7eb0224faeecd843da68%3B3.0%3B1660889735665",
|
|
||||||
"h5st=20220819141535695%3B5991151234696807%3Bef79a%3Btk02wa3a41bb218nEkn6aTIDXAlXCcbelPJB1HmIKgpUJtwnskw31Xbd9fEnHco9EdL61U%2BMSbQ%2BdqTl0Npw01iZLEFf%3B7d341bb972057b1cf91260a5e7f34af8fc00165ea115548d79ecdcd01dddd35f%3B3.0%3B1660889735695",
|
|
||||||
"h5st=20220819141535727%3B6774967351268667%3Bef79a%3Btk02w91ef1b8318nEkn6aTIDXAlXK9gHNzAh%2FBTeOW7nohpZRFMPTrIbXH6nGOL1QZNJnqSyFvk7IOQUYI1Xn0OAPPsS%3B0a21caee017a6c8f89dcb8363d2eff96f99ca0dd7993da23183550f50ca7f56d%3B3.0%3B1660889735727",
|
|
||||||
"h5st=20220819141535765%3B4135001476932818%3Bef79a%3Btk02w7d0a1b8b18nEkn6aTIDXAlXnY3NMXAXy%2BS%2F%2FB%2FBTh4yH%2B9ogXIvQZRAsnIweKRxRlHRm6tli%2BGAhaIaIWjRbY9e%3B2ae1f5b39827bd9afc29ce372d7f8a8d63fbb126cd29fba29bf012dd38e2156a%3B3.0%3B1660889735765",
|
|
||||||
"h5st=20220819141535805%3B3861980614759319%3Bef79a%3Btk02w94f71bd718nEkn6aTIDXAlXfDDohjgRZ1tV8Q01RhArF7lY%2FQ7z9aviwc7viGv16IY%2FYGgvU%2BPmXTVEhnUNucYD%3Bcf1ed79b582aaed70ee9aef3f15885dd8f109c04591ac70aed7df854381c5233%3B3.0%3B1660889735805",
|
|
||||||
"h5st=20220819141535839%3B6523225507894518%3Bef79a%3Btk02wca041d4918nEkn6aTIDXAlXTq9xKQYRqNGlvoERWikQZSswG8VFwXkDq4LfxvtbjOnebXBX700nxXCuQALuNkri%3B28b2c6b5090088c8cffc98ab9a3af0a59b049ee967f529fd6ba08c84174d4ec7%3B3.0%3B1660889735839",
|
|
||||||
"h5st=20220819141535869%3B6730285000149334%3Bef79a%3Btk02wc00c1c9d18nEkn6aTIDXAlX22RHPqzMxSYtobawljYeviX4p8BfsvU%2FjebNTL%2F%2BmpJTv3EYK4nWYDRIyZJqxc2E%3B72ca42706c420811b62cf962b3ab40cc31faf5a03dca5d92cf9bf8972b603d0e%3B3.0%3B1660889735869",
|
|
||||||
"h5st=20220819141535904%3B3354106068809882%3Bef79a%3Btk02w8df61b6618nEkn6aTIDXAlX1FRRFwjaqj3tndDHE%2FJOAE%2BueyO7tDg5VD2spRwNyQ9QRK410av%2FetHLspLWEJVK%3Bae4a247a570b3a8a183c18b32e63e37284cd082dce8eb99249bcd97cdf671760%3B3.0%3B1660889735904",
|
|
||||||
"h5st=20220819141535938%3B7728869017385425%3Bef79a%3Btk02w91d21c4118nEkn6aTIDXAlXDXD%2F2fi%2FM8lBMdIxBHtljwosBUWVSV70dQP7seJ3mcmwg3QfWrc0kPcXRjgeY1op%3B082fb6aa17031ca1e648622be5dfc4a8dfa5a959fcecfe693493bae7bd831722%3B3.0%3B1660889735938",
|
|
||||||
"h5st=20220819141535970%3B8145967038137322%3Bef79a%3Btk02wb6bd1cd518nEkn6aTIDXAlXjnbzf78q1ivbRi2cmbdFk89fC0cZoGiRzhSW4C9dJYnc9EMAbuDkRWcrS8zpQxll%3B533476053378f6b23d4514a14527ae38921516fad0c55bd9687f28c5870c1a16%3B3.0%3B1660889735970",
|
|
||||||
"h5st=20220819141536003%3B0026594491410082%3Bef79a%3Btk02w75791abb18nvfbVB75VgFR7lpD8811uZcIQb11ef9g%2BLj54TISQAhvfdQvkDqdpQXivK6tHB8G1WBNTu2GF%2FA3x%3B85c72c00c6dbcb9170efcf727ae3e5383f2ac3a1b018fb6b013dfe378b4da657%3B3.0%3B1660889736003",
|
|
||||||
"h5st=20220819141536033%3B4922376031489385%3Bef79a%3Btk02w8edd1bdf18nvfbVB75VgFR7O1yEnTAFh5Ok%2FOZ8gxheA0tnT5Z2e46AjlDRuhdNxvPuLdr8xPgtn8e3HuvRZ%2F3E%3B77d8253549f812b5d7ef8d1579a688778ecf7006b199f1ca2976f7373c12ff0d%3B3.0%3B1660889736033",
|
|
||||||
"h5st=20220819141536064%3B5904373344348460%3Bef79a%3Btk02w840a1b6818nvfbVB75VgFR7doR5tgSJfXUBhH5Mo4IdK7FD8j%2FdwNUmFa%2BW6XNGpzE3dax03hZbyW9gL4kRzTy3%3Bc8ee4cc61bfa925d1c478796cee2771587c1c20f8454f67b968449cf462a632b%3B3.0%3B1660889736064",
|
|
||||||
"h5st=20220819141536098%3B5659430658162864%3Bef79a%3Btk02w85b71b4f18nvfbVB75VgFR7tkyII%2FIS0MoYv%2BdAk3d1QP7iuAMrQuP7LqDpMtQdF0uX8a%2FjBB8R%2B5BmJLvxoz4a%3B33c2421589c97232ef155f193749b57a68be019e0972bd6719232e355c4055b3%3B3.0%3B1660889736098",
|
|
||||||
"h5st=20220819141536130%3B1422378246409494%3Bef79a%3Btk02wc2be1c7c18nvfbVB75VgFR7nTb5zmoA%2BpoykSo9ngh4Q3qVPjdrmy6j2GeZv7KdmsFF7mvF9MmemMlYgO6W5F5I%3B1d82211d78784ad4d8c02f036b42ca6aa0c4d1dcdb35f7aac568bf6e13bc0b2b%3B3.0%3B1660889736130",
|
|
||||||
"h5st=20220819141536162%3B0294070373688311%3Bef79a%3Btk02wa5661be418nvfbVB75VgFR7oRRqMvLKdqIgop7j7kD3hJWKuMgX7sAhDVq4SZKDZE2vuf%2BI%2FyyU8%2Bbbw1QX7Lms%3B1e7317798b5ce87b3648fadfd8850a1554e52e87dc87079f8753bbc4b7a1712b%3B3.0%3B1660889736162",
|
|
||||||
"h5st=20220819141536199%3B5484801197615128%3Bef79a%3Btk02w6fe01ae318nvfbVB75VgFR7%2B84HAuqGqBTMIQ7KRyx%2Bf16Z3zzDXv6ucWYa0NGF5vPdWTwMDOSwf73IABYpg29n%3B41c73861bc8c0d11147ca4b29f0fa7eec77842076d575f3f50f495b9129feb2a%3B3.0%3B1660889736199",
|
|
||||||
"h5st=20220819141536231%3B5128057439559971%3Bef79a%3Btk02w98641c7818nvfbVB75VgFR7DP6l6aEoyogOMh36Yya7HFVyJgM2CV%2FrsHbpwW4JDsxBPgoVpsL1zxTKOepP1tom%3B6637d04c6a03b549439d70d362b973384d2449a15c82a235e9817eec85d7e7c4%3B3.0%3B1660889736231",
|
|
||||||
"h5st=20220819141536265%3B8015274629834231%3Bef79a%3Btk02w99191bdc18nvfbVB75VgFR7Z5GkVyAhNh4jhPR%2Fqay2%2FUz9QtDTJqy9kF%2Bonf0pBDohsb7uSY0GgM3AyXUTp6fL%3B3db03d041416397a815cc9c15e0a50297e0b9496cb5eff926dd1f72444462911%3B3.0%3B1660889736265",
|
|
||||||
"h5st=20220819141536298%3B5596521475292506%3Bef79a%3Btk02w96531bf118nvfbVB75VgFR7ggdfOGNuFcFE2rL2zR7qsqoW%2BWC0IRUSaERozBB0yZ7TAiwcIfW3CKbpDr3Bthnq%3B7207bec4c83ed5c23a4db118e586f3e368a318cba67fb441b17cadaa19ba2e14%3B3.0%3B1660889736298",
|
|
||||||
"h5st=20220819141536334%3B6580453676767712%3Bef79a%3Btk02wbe3c1d1b18nvfbVB75VgFR77swRse97Wc7mr%2BdAI9vlMumyTvnVVYfWy4YAEwkwGCRvxtwDw%2FVydoIC6xt3i9mF%3B5001ecd92a57c9f205e5ff5ea379c3058ae9c88ef8b5731a1174bec6c22d2b84%3B3.0%3B1660889736334",
|
|
||||||
"h5st=20220819141536368%3B7263181089108980%3Bef79a%3Btk02w8e2e1b8f18nvfbVB75VgFR7oCBo9FtP9OoXzWPAWBGMWGTQSe0PQk%2BuUc1ijokrNr2SaQvb%2Bu9mt0E7lv8z%2F3Ab%3B9ae1e393909302ad738b04348515b1550b408770912cefc62adf8a6c05fe5aab%3B3.0%3B1660889736368",
|
|
||||||
"h5st=20220819141536406%3B5214623984266466%3Bef79a%3Btk02wae691cf418nvfbVB75VgFR7gdjQ2fehWFIwCbzzQ2J0OQmmz020Gjijg9EbQETDrbjotnxdnAHtqBNAtiviLr1v%3B029b68b144989500b510a91a6e7fc03a0ccc6f65f0cbcb626f7aea7121efeb83%3B3.0%3B1660889736406",
|
|
||||||
"h5st=20220819141536441%3B7825937011369991%3Bef79a%3Btk02w8a0e1b8118nvfbVB75VgFR7OyE2PMTZ%2FW%2BZSLbwiiZh0zkkCoRWDiKVi9CPtHL%2B9V0ocSjE29NjqyalKiTE4HOl%3Bf347f308528e4e2fedefc8bf58d4cb51ddcc42fe385823c2ac59ede12e545cf8%3B3.0%3B1660889736441",
|
|
||||||
"h5st=20220819141536493%3B1377464208145557%3Bef79a%3Btk02w82191bdd18nvfbVB75VgFR7InQBNKVHWGI7Ruh%2Fx1F%2FA7Gedhn5wMTovcCV9lCVtyWoNUt3PYpFJ6YbokoPel5d%3Bd0fd4ad886c2daffe1574b5a6570b783a8f82b856b0b6c068c2d519725286c6d%3B3.0%3B1660889736493",
|
|
||||||
"h5st=20220819141536532%3B0997269534894003%3Bef79a%3Btk02w75691b3818nvfbVB75VgFR7HEPDLPX9R5DpdKV62UX6LsPzVFg%2BtCLXRroQjpovVbCvDjMQ3BSMDR6ChLk%2BbWyO%3Be568c96658559e1985e147c11b83f5b4044dacc05cf97f2befdcc224af0b1fb2%3B3.0%3B1660889736532",
|
|
||||||
"h5st=20220819141536570%3B1481779527847836%3Bef79a%3Btk02w500519ee18nvfbVB75VgFR7%2FRGo2fa9cC5N%2FpB57bIQKDx7ch5LkRtRd%2FFfn04A6F5Cf55WEm17bDlV0mPtgFFe%3B2edd929dadc15f2452c3b50391e0a4e0f86041f0550eed26e991b58c495c3673%3B3.0%3B1660889736570",
|
|
||||||
"h5st=20220819141536607%3B5728461436018680%3Bef79a%3Btk02w84171b9418nvfbVB75VgFR7KoQc%2FX6YuF0VDjxjuMhGUoN9%2BNCT2jN7L%2B%2BqQtFbmpVLIhTbl%2BYtUhA1wtStAco6%3B59d06b863451e807e0ee782ebfd862a4c7a6270a1d0be746b65c06a5bb8a2040%3B3.0%3B1660889736607",
|
|
||||||
"h5st=20220819141536639%3B7239070941659338%3Bef79a%3Btk02w9aae1bbf18nvfbVB75VgFR7blFbwTEgCku9q9vYAQYg95%2BFjjY%2FS%2FpMp5zr6nUeDtj%2FvH758bqXOpnt5BTIVSEc%3B250b29c3e8bd66b73c05eeff2b4fac4327adef0f8ddbcf19207a22e67892e3ee%3B3.0%3B1660889736639",
|
|
||||||
"h5st=20220819141536672%3B8135462071390594%3Bef79a%3Btk02w719d1b5418nvfbVB75VgFR7VU%2F736HN0tef758geEFGFc02yalrrqApptreE5xOVKmg0AhlHLHDFiE2cKuh9ut5%3Bf7f1361a39742308e6cb2cde8fc1ef335b4bf2fd086b1931c09de221f9cdd9de%3B3.0%3B1660889736672",
|
|
||||||
"h5st=20220819141536708%3B9976825023255042%3Bef79a%3Btk02wa2c51c1d18nvfbVB75VgFR7sWWG3y5kqHPYhG5MvRjc6ugHkohv2H3gs43d9botelAXE0rNL8VGWsyl%2BVbZZ%2Feg%3Bb19d52b111625a3894536d5f9c9bfb23fe09005887bb023edfe192b5eb954628%3B3.0%3B1660889736708",
|
|
||||||
"h5st=20220819141536747%3B2260473698238923%3Bef79a%3Btk02w8d1a1bbe18nvfbVB75VgFR78hh%2FS3p3rrR3BtG3uvWWV%2BcBGxcFycKZjV4%2FkYsYVAJTm9lcfSXrBnS5%2Bqht%2FQ9v%3B8e82a2bbed86b5c3843db339b8925b73655e393956fc49e61c79e4ea9fda0acd%3B3.0%3B1660889736747",
|
|
||||||
"h5st=20220819141536786%3B3172858282042040%3Bef79a%3Btk02w85c81bba18nvfbVB75VgFR7jvZMkVHn6dCIzAF4kGCZ3KYOGB%2Fs9sD9cy0v95NxyQYVhwX3R7sGYP23kNQpoyxv%3Ba8b40a06679a59891228a0009047221cc68af299e2ff73909a8301ab9eb48e71%3B3.0%3B1660889736786",
|
|
||||||
"h5st=20220819141536824%3B3108672678772840%3Bef79a%3Btk02w7f751b4118nvfbVB75VgFR7qFPFPo06Gv0l2l9TJt3MDNncR%2FqFgIIKuTTvNTDhw%2FKPnfyXEcbtY4ccf800I2sL%3B48881d4f2e18a09e40af60ec59003b89f13a2bfa0d92a60e66e08fa0e0b8cf6e%3B3.0%3B1660889736824",
|
|
||||||
"h5st=20220819141536858%3B3794825561635072%3Bef79a%3Btk02w98f21b9418nvfbVB75VgFR7vauOFQMyA6tDcZln78EEXxTe%2FzMHJfuH%2FAnIIE9avzLZy4J5UJITlHxDkC6UPvBM%3Ba285166cfa5f708aee91da45538be3c69815ca514a6cda5c595ffbcee4a79f94%3B3.0%3B1660889736858",
|
|
||||||
"h5st=20220819141536895%3B1237747006858990%3Bef79a%3Btk02wc4c31cec18nvfbVB75VgFR7qvYMepYfYQZvo3sMyf9WFxNE0Rpzvvvl2U4jjk2391IZ1Ow1YTxebyGnycHvZ4Mt%3Bc236fbe99391d22bfba7efd5592bb5145b44ad3872bba077497df45b7cb7c1d5%3B3.0%3B1660889736895",
|
|
||||||
"h5st=20220819141536930%3B0547925010251602%3Bef79a%3Btk02w9a0e1c0f18nvfbVB75VgFR7OUBdk8pVvOKFJYiX%2BiRi8zYe8US5WU8cgf9fwNbsjzC%2Bofn7fAnAU%2Fx%2FGYYLRvyP%3Baceda0cc5eee654fdb447c1e88ffa315138418b3bc1332aff9fe61ccf6f8a379%3B3.0%3B1660889736930",
|
|
||||||
"h5st=20220819141536962%3B3139692701383116%3Bef79a%3Btk02w7a8e1b1718nvfbVB75VgFR7JMNdSz1k037mq8EjKR7I2r7rsb8LIfiVUj%2FpoDa9ITlBEhro11WHnRAfecDS3w1Q%3B36e06e499f2b34cb64ed132e53c4988c05eab12422e4ff67ba9ddb98952708d7%3B3.0%3B1660889736962",
|
|
||||||
"h5st=20220819141536997%3B6333968152873847%3Bef79a%3Btk02wa4d61bb718nmEZe2krI4Kmg4n%2FI%2ByEYQVIKSwNR%2Bu08tnviwxbTdRpMHog7TTxelkkcg82H0FbN455K1OXLVvND%3B0517dae954faea8ca3cdd851cbebf49f837b1367565d1da026c931a0a279618a%3B3.0%3B1660889736997",
|
|
||||||
"h5st=20220819141537032%3B1247831765900138%3Bef79a%3Btk02w7fc81b0318nmEZe2krI4KmgmpFlAE1CLl49G3n5bgRaLK5uTUOV44z9UJ7WFrjxZ1j%2B4Db8nsSb2ulREG%2Bee7oK%3Bd3b14b0aec8a21aa0542aa25883cf64c4347be940e9227b016901ca8ee4efdae%3B3.0%3B1660889737032",
|
|
||||||
"h5st=20220819141537067%3B9541839780738031%3Bef79a%3Btk02wd9951d9418nmEZe2krI4KmgegozKB8ulkrLT6UrFhABoqDr%2FmelBWBnx9fvSqrVVQshbIV0kCn2eXDrwQXusOGk%3Bc3716e374cf0132120c448703abdbe732358a738c6892bc6cdc1ecba7b062f6d%3B3.0%3B1660889737067",
|
|
||||||
"h5st=20220819141537103%3B4979989653108117%3Bef79a%3Btk02wb4aa1c8518nmEZe2krI4KmglRhKKpvNL5IVrWHPrsTsfZb16z%2FP%2B6uS1%2Bnsq6kvPNMiIi4PbldoMgZAnFa3TlUu%3Bbb0f4d0b7d0a2c86762036d8a6cb8299cfe3aa11eee4a1f8171e89ca623fa8e5%3B3.0%3B1660889737103",
|
|
||||||
"h5st=20220819141537138%3B1357620122969081%3Bef79a%3Btk02w99511b5418nmEZe2krI4KmgKiLj8m890Bx1u%2FurcLp6SWRb4OrE58udzf9tm33wp7Uz1qqGUKwL6QXM6%2BGDK7bI%3B33eab53502b8dc3059efc2a943afc1786bb3275738e53f866b030adebbdfd3d7%3B3.0%3B1660889737138",
|
|
||||||
"h5st=20220819141537177%3B4538000270976011%3Bef79a%3Btk02wd6ad1d1f18nmEZe2krI4KmgYoiBaYdgkUsupNzTCzJO0odrMI5dzkn11AI5DefVfUeSLHoFkeki%2FumeNtA2AthL%3B3957c682c48c15ce9674d75f2cb0a20ff47838bbe0366359893f34662611e062%3B3.0%3B1660889737177",
|
|
||||||
"h5st=20220819141537219%3B7564830970127172%3Bef79a%3Btk02wa69b1b9618nmEZe2krI4Kmg6eo%2BCe6nrzof0w72cnumX3qXDWg8aEnjgy7F7R5Cqy9H550j2DJMVuQ20bDkIFsn%3Bf32025f4b1415270ff4cbc158f2261db441994ab31fd790b800c29e43a9603bd%3B3.0%3B1660889737219",
|
|
||||||
"h5st=20220819141537259%3B8556535650796669%3Bef79a%3Btk02wc09d1ce518nmEZe2krI4KmgqmWUu%2B%2B5SSG4cgqaNQdxrSzmXsZc7QsNawo3d7QBW8XOj7WwoJv6lwqNCNF5qOya%3Bc49dde28b87ed5597d4e1f76bba899a8cd09b3034de081a2a6a87170b9d8eefa%3B3.0%3B1660889737259",
|
|
||||||
"h5st=20220819141537300%3B9216680343764530%3Bef79a%3Btk02wb1a21cfb18nmEZe2krI4KmgO2fXt2T6pYLpZECP52sK9vjnJv9gPzSdBdqxxZd1amQPpbioQX6Z0EMspRqWblMz%3B844806b5b843f4d23a170305bd8446e51ec0aa821e98a08fda05592134676ab5%3B3.0%3B1660889737300",
|
|
||||||
"h5st=20220819141537341%3B0143288316950419%3Bef79a%3Btk02w96da1b5a18nmEZe2krI4KmgwmksY2vLD6qv4LL2%2Bodvufl%2F%2B7k%2F%2B1fmaBa45PNT5DoPE248AyFWsaV5jarcx6WV%3B327d9c89ffc01b17538abf0f279130fb5bb842249eb5dd1283e7b7b7ee091a9d%3B3.0%3B1660889737341",
|
|
||||||
"h5st=20220819141537375%3B7898051428979836%3Bef79a%3Btk02wb9791c6318nmEZe2krI4KmgoxquYtASMQBrp7uPJ4KgkK75eFRZ1n%2FeTuBcRnRIim0ApO%2Fyd6zENL3feNy5Apln%3B5eddee9ea450d7045bdd25449159c8511ed9f2b51478d7f1763c13f0eec588fa%3B3.0%3B1660889737375",
|
|
||||||
"h5st=20220819141537409%3B4196780158341522%3Bef79a%3Btk02w66ad1a1018nmEZe2krI4Kmg%2BYhLUM8VBc26Ar5Nk2%2BIbJxIAWf5Tik50FxPO3KUXV%2FSrHWM6bbIwdA0LQG895s1%3B0ecb10b5834dccfc1c0253d320140f9eadd27050d8105dc07690a3b96f08b436%3B3.0%3B1660889737409",
|
|
||||||
"h5st=20220819141537443%3B4467825230125402%3Bef79a%3Btk02wa0761c0018nmEZe2krI4KmgDjDYrj%2F7r5jmwwu5%2FUA4aA69hyXi8s87zlFpiL9ICSAfesHBIFHqcKEKz05dLxuw%3Be56275bb1139317ba84ff73376a5e5a40af97b1531ebfe4cadf7497e61ef36e8%3B3.0%3B1660889737443",
|
|
||||||
"h5st=20220819141537486%3B3393345687034047%3Bef79a%3Btk02w9a061b4718nmEZe2krI4KmgZyl%2FZh8e6%2BxXUMjf%2FkcTSQg9sydSZF1m0UCW1DVh8G6N6XYTLKl6eEZ1U%2FRwgClT%3B990769586069eeccbff9b2c62d483426d55d583b1e13fe8f3cfea6a9f1a5f2a4%3B3.0%3B1660889737486",
|
|
||||||
"h5st=20220819141537534%3B5069191138217820%3Bef79a%3Btk02w9bce1c2618nmEZe2krI4KmgUjz9Fd8%2B7PKKInAMLE6zQvHfdRcdSl3bZMErAwZ2PPRgGCVtthhwnejaCbMlH9R9%3B6ac97510be5e2910f4c7388022848359dcb785c57a4d3a0d4a300d0d25b948ef%3B3.0%3B1660889737534",
|
|
||||||
"h5st=20220819141537587%3B5003947215285314%3Bef79a%3Btk02w96c51c0918nmEZe2krI4Kmgr4VIWHYWci7d5%2BzDz9php0IEE8uGAU%2FrgyiexQ%2BH434rBOaW5RsHgLancEmsiZYs%3B311319675d3e17713eff472400d51861f72a3a163d5fb8439fddde79cfa7bb13%3B3.0%3B1660889737587",
|
|
||||||
"h5st=20220819141537638%3B1479178260532998%3Bef79a%3Btk02w9dab1c3c18nmEZe2krI4Kmgi1%2Fh%2BSg0E5lGRLcyo1WxVtGyR8P3cOxMtfxL9eJWHSitQDZMeLUrmY3OpgmGAGPr%3Bb98d9486a4e9c10b4c134fb8fbd1d87e064cb1be8dc4e5b09c0c17e93de89565%3B3.0%3B1660889737638",
|
|
||||||
"h5st=20220819141537692%3B6946046128955797%3Bef79a%3Btk02wa99e1c9118nmEZe2krI4Kmg4emf5g1uU8jyt0PaO2MPMwM43ah8MAYrvrsZ8cblWFHTuk9M8Zkkz0CkzYNbasgG%3B550e6f1801a8bbf24ea46ab27885b4479d0c8d32a03ca0438ac6d31c43f8469c%3B3.0%3B1660889737692",
|
|
||||||
"h5st=20220819141537728%3B2267939945087618%3Bef79a%3Btk02wa61a1d0118nmEZe2krI4KmgsHxY59ddId9Ea4KJNLr50Yco4IA6uH5PVeorvjKSZnrkeNwkbybFyTOluYdwoiW5%3Bdac7b2d45e6dc413152a64c8b5b7a3be41f17978ba6f831301160d6b9dc4843d%3B3.0%3B1660889737728",
|
|
||||||
"h5st=20220819141537761%3B6658342606622902%3Bef79a%3Btk02w801c1ae718nmEZe2krI4KmgIan%2Bf94E6uFHmFqQ6SWWrInCDrB1Cy3M%2BfMlmf2cuAw239J28oNBe1RGYkPmXPo3%3Bca0e61805384dc9e927947125ecf5aabc2321bff95a59e2ead07ec26885ed767%3B3.0%3B1660889737761",
|
|
||||||
"h5st=20220819141537798%3B6247621309756847%3Bef79a%3Btk02w9a6c1c6718nmEZe2krI4KmgCey7frSw%2FK0m864CvMHCH6gfhJSSKzeMKxt3EBt%2B%2FpmcCuTHU%2FjjlRwoEjnaUhji%3B32a9ebc75c6f45bbe326e733df07cfaa058800df8935c5e26ceea14516dd1ac5%3B3.0%3B1660889737798",
|
|
||||||
"h5st=20220819141537833%3B4014394985704438%3Bef79a%3Btk02w91c31baa18nmEZe2krI4KmgHH7dOL1bC6cvNxHTI6S5nHchTkcYxzSD0j6BtKD2h6kNDunEJmUUnWV8QMIyYFx0%3Bd6301db806aeece3f0d808151d4027e4c5a5a44cef7b14bfa4bfc134e42eb4af%3B3.0%3B1660889737833",
|
|
||||||
"h5st=20220819141537869%3B8272872064388127%3Bef79a%3Btk02w95d31b9918nmEZe2krI4Kmg0e036IxxuiIajVdh3A6ga7yf16il8RXZo5WF1bnlYM1S4mZGjw6XOPDCxEZ4BTos%3B40cac0ede168a14d588f93137555e33d8f3937bbd616ba90d6f4a1391998ac26%3B3.0%3B1660889737869",
|
|
||||||
"h5st=20220819141537904%3B4215387192564654%3Bef79a%3Btk02w917b1be218nmEZe2krI4KmgJ2fI2XK3%2BCcwVzir6kDF54lxkKUbBJ%2FU8%2FvJonAWvKWwlpVYl%2BvmEaliPjFb38x%2B%3Bb770c37d439dccfacb2557a4c163aa15d6755b44db246920294545c37a679e2a%3B3.0%3B1660889737904",
|
|
||||||
"h5st=20220819141537939%3B2606253497065307%3Bef79a%3Btk02wa7361bf118nmEZe2krI4KmgcTD7h6VQzfjke9fpDcRLzSTGpg0DMBhGNY8%2FfePZ8q7t7IR6mxM6JIkeY0VUcymH%3B1617ae419a233782ec76c5385e7a3d0db1b627e8e2482a1f5fda9bc0deb5600f%3B3.0%3B1660889737939",
|
|
||||||
"h5st=20220819141537977%3B3564498055672775%3Bef79a%3Btk02w906d1bc518nmEZe2krI4KmgCcDkIH6t%2BRHZLE5ttnTb50xax6HdXUE3b9TdptJ4hKOu%2FFLY6gRabi3KkQDpCbur%3Bb3848f79d65fd62417779012b487b97c3bca707a4445fd0e08e78aca484801a3%3B3.0%3B1660889737977",
|
|
||||||
"h5st=20220819141538020%3B3912790833403562%3Bef79a%3Btk02wcc201ce318nI4iytyi0SlSruiaVAJqdS5k4o3NPl0BvJBe4FyZWncuK%2Bqui1lpbNNUddfKScyemGaPP34F3oIku%3B6a96c9049fa8717de855fd6eb8394028d99d4749d4568e57518a215617bcd1f8%3B3.0%3B1660889738020",
|
|
||||||
"h5st=20220819141538062%3B4350617442050334%3Bef79a%3Btk02wd7931d1318nI4iytyi0SlSr8ReipQGeBeVUu7zanPFsjSWT9WTLtwkKZBi1WhGqXMFPjDBqDopB6yXEfeMRtiU6%3Bc52aae1e5d951b248aab5ec0d10e2d2a3ae553c43088990bb57f05c47a9c235b%3B3.0%3B1660889738062",
|
|
||||||
"h5st=20220819141538101%3B3518259076057072%3Bef79a%3Btk02wda531cd318nI4iytyi0SlSrZamLycKPXalCjKZM0DSvVVerYnx7ms%2Bhw%2BxK%2B6hWmenqBCDA0VfdREluSIxQO5X9%3Bf45269857038c892e962c62864c8c37a66d2e2ce727de32b56697543739b7c61%3B3.0%3B1660889738101",
|
|
||||||
"h5st=20220819141538140%3B9976824670536564%3Bef79a%3Btk02wefcf1e0518nI4iytyi0SlSrQZDbx2kxe7yrwU3ZeS7CLwu0zK3gIuvoouWfdivFJF6yuimYehN9oEs5dzppTd5J%3B4b0483dd82ca50c60f099be4d7c82bfffa7021490fd1b5b5f25e49699a771aac%3B3.0%3B1660889738140",
|
|
||||||
"h5st=20220819141538182%3B8061664493257799%3Bef79a%3Btk02wc1bd1cb618nI4iytyi0SlSrvGLa2W7u3EMq1izpLTOtIYFiOax7esxcS2sBsE9%2BwUL6NbLrIe0KTnQFyvCFuaRj%3B7a1c31aa9712943b95f79369d63791b68175d4a13cb595a6249e487f1403b108%3B3.0%3B1660889738182",
|
|
||||||
"h5st=20220819141538224%3B9840596831272872%3Bef79a%3Btk02wd2201caa18nI4iytyi0SlSrD7Ndq3kWI86vne5zxiGPvzJsc24xUJysdXIGdFfwxHncws539nk3Z3X9C4PNZZ1k%3Bf07bd835ce4ccf30a347e4286b43e3e2786722fa70c1584d0e9f39df6b5bf768%3B3.0%3B1660889738224",
|
|
||||||
"h5st=20220819141538275%3B0493186761332370%3Bef79a%3Btk02wa3151c8618nI4iytyi0SlSr8R8At%2FDjYj%2FeUurUdM0%2Fy2o6lShPD6L6J9dtms2c42ZBmS2hKzywPIkkQgsqwnCj%3Bd13f33d98c734c6cc81cbb44205ac66ad3009277b2877140ddbc043908068341%3B3.0%3B1660889738275",
|
|
||||||
"h5st=20220819141538311%3B0097241885660394%3Bef79a%3Btk02wa2401b7f18nI4iytyi0SlSr3N6Q6pMgCmb5mansc6FVyOBUIBD0pR%2FlDs7Phi1RvNNgsLKW0W1S%2FPhfD2FcMJoU%3B1242066c48234257fef364ed88026780b6d1ef00e82adc1581d8815445468425%3B3.0%3B1660889738311",
|
|
||||||
"h5st=20220819141538343%3B1654893240304070%3Bef79a%3Btk02wbaa51c1318nI4iytyi0SlSrCcr2Rma34cKEyW8LlCGSqZ4SAfOqpRmUpjF0gEpSNYNxfYVphMyh2w%2FFFY%2B14vB0%3Bb0bd919f15422f8978c064d8bccb5a595e3ed431a52fe5a76c867dd1ed3ed640%3B3.0%3B1660889738343",
|
|
||||||
"h5st=20220819141538381%3B1762901737171372%3Bef79a%3Btk02wbe141c6a18nI4iytyi0SlSrHk0vbb5JJZD6zSvLouD7oJBzkB7zp%2BV2PSsbbQJiXM2tRnIk0c9r4JKpscf0Vn5Z%3Ba19c34f34286a14d81244d0f420f20926b9bb00fbf3583aeffa0cae758fde3be%3B3.0%3B1660889738381",
|
|
||||||
"h5st=20220819141538414%3B1812485306998676%3Bef79a%3Btk02w67881a0818nI4iytyi0SlSr4L84Mulr5EQIH%2F0s70%2BGWJfGN%2Fsp8AAF%2Bk%2BscTJG1Xs2REtNFG5q6OMd6tB7Bb0k%3B0dcfbd847ae3d0ab4d5e988c575cf23e7a52799ab70a8e83769260ba33fa03f6%3B3.0%3B1660889738414",
|
|
||||||
"h5st=20220819141538445%3B5189794639434660%3Bef79a%3Btk02wa9961c1c18nI4iytyi0SlSrTOTAv1cRnIKlt8MfdO%2B6lv43BPa8KxMMfdPEshZK9Of5GRUG4eYSwA4TUfyhmCkj%3B9b073de1f201db0cce54c3c99de2269bc6118aec3b76ce9d3eb1bbb20d58c6ed%3B3.0%3B1660889738445",
|
|
||||||
"h5st=20220819141538477%3B2899073564832937%3Bef79a%3Btk02wccb81cd418nI4iytyi0SlSrFiJNUgGeEIiRzhe3dYOaqKV9mDOLmEzjAHi1vZsDaluJiiABhh4%2FL8aGUPtFsh9r%3B7dc3caf1a692dd53023736006573c874cc73595c9b2c0948ec5b561f7c298c66%3B3.0%3B1660889738477",
|
|
||||||
"h5st=20220819141538510%3B7331111138403529%3Bef79a%3Btk02wa97a1b7418nI4iytyi0SlSrn2JPdQ3OpiKsRB5dVsgwgTJc92CAsS%2FSHMV90cEWU1VuRKuVnVIjAB9uv0O83WBS%3B1961fe4c0c9fa131688b3bb98966555a9ae9301fcd09d6e0d11d067dcd845f66%3B3.0%3B1660889738510",
|
|
||||||
"h5st=20220819141538547%3B0000664147231549%3Bef79a%3Btk02wd5d61d4b18nI4iytyi0SlSr9LzrR0hP9%2FMXNjoWkNYyNf2QGpE8RhqyiQxWkTxdosU8oosMuPpdj6nVEo1FiD7E%3B1f45df1d1bd7e6c5231821a03b8d4d07af54c0ca9bb9c2d0f3db61d638e9d755%3B3.0%3B1660889738547",
|
|
||||||
"h5st=20220819141538585%3B4217465893931035%3Bef79a%3Btk02wb50b1c2518nI4iytyi0SlSrlJ7d0SRqOWliQndyb67BXBv8IUepsA2g63sz2Bjm7KCD2Yh%2B2VfgQtsZF6wOQwCi%3B08d9002d4473630f62212c3e072ffcf007c1e532ea59b1ea4a07edd64aacc5cc%3B3.0%3B1660889738585",
|
|
||||||
"h5st=20220819141538628%3B7660869423078807%3Bef79a%3Btk02wa1841be818nI4iytyi0SlSrFB8u2kZXUMkXi5g4BU2%2FjnFl0Od1PMXr4slZh1cHzKAFSwSAljgEIxHC4BCkv3pj%3B84a5b521d898030e0845d529b4e630616627f1d27960a07eb8a023e1ec86a8bf%3B3.0%3B1660889738628",
|
|
||||||
"h5st=20220819141538671%3B5803616699699630%3Bef79a%3Btk02wdf861d0518nI4iytyi0SlSrPsXTmPvNSc9wv62VervadbfaS%2FWrkz1HDIitUZ%2FOwsUOx0BJkJ%2BAQReRJ%2FuQlaVh%3Bca50db0ba547e6079461d03811631d0eed68a22cc7ee2cdc0739283dda826e8f%3B3.0%3B1660889738671",
|
|
||||||
"h5st=20220819141538710%3B0345910210206772%3Bef79a%3Btk02wd0411cba18nI4iytyi0SlSrmix%2Bhev8Ry0lPRvCjjBQtEYTqUi1%2FBciJ46gje7ok8%2F9ieQixQc0bESXNIHMuorN%3B70d75c8b38c8d7656a81c9192b41de631752b104d582dd523f018158c08f7d61%3B3.0%3B1660889738710",
|
|
||||||
"h5st=20220819141538747%3B5088202813729088%3Bef79a%3Btk02wc2a41caa18nI4iytyi0SlSrxq%2FZPZct6K%2FtWg2lXFq6JQXjPQk1wSAOyaCVtHip2XJI%2F8eXKhxFShPrbfKDPiYe%3Bde277aa0cb8125c4022040e1a611e5b47d0235b2db92f5ce96b325a54e39e47e%3B3.0%3B1660889738747",
|
|
||||||
"h5st=20220819141538786%3B2476609311959680%3Bef79a%3Btk02wedf91d3618nI4iytyi0SlSrYHTyzLgEhgqmvVLzinflhtwAB7TXI1Py7Jtc%2BVAzFXYGW6iACWS6SVtjVckm0XdI%3B67d8854789328d0104452723410a5cda2ca98d94efd66885533ba1520a334da9%3B3.0%3B1660889738786",
|
|
||||||
"h5st=20220819141538825%3B3328532614825737%3Bef79a%3Btk02w8a531b3018nI4iytyi0SlSrU9qojq%2BtHMV0fhE1E840H8U781TpN92qt37qreE9Nd5X8uDzp0NCicCaaR2nCzu8%3B2c71fd38db395e339528dcff4ba2147ef5a91f10cc29146581091b6878825fa4%3B3.0%3B1660889738825",
|
|
||||||
"h5st=20220819141538857%3B1904588923655198%3Bef79a%3Btk02wd48d1d0918nI4iytyi0SlSrVSSuEN55JK5tQ7SJvs3WglUkzoqvyrawXcw7NpLmNSvvBBd8T0UVUdTkbHMJGYFK%3B0fb8148fdaef8b9ac8c086b374080930aecc9e10a2d68c3fd4652b91757ada56%3B3.0%3B1660889738857",
|
|
||||||
"h5st=20220819141538893%3B2999043511562964%3Bef79a%3Btk02waaa51bec18nI4iytyi0SlSrCLQsB9NCTRGEfBTSnc0acRgpi4MWheLPRxOPmlW01r5LTnMx1OTZLRFZIbfF%2Bn6u%3B70bcc00e0eb1e2ff490d5da0ead2e6f98ad6892ceba4fd21e9c10ee1162c003c%3B3.0%3B1660889738893",
|
|
||||||
"h5st=20220819141538923%3B0359599264137338%3Bef79a%3Btk02waa521c3818nI4iytyi0SlSrNMm0OKPUJaxz4imu%2FCL%2Fj21g4Z2XuSg5qaFwQ7%2Fo9s9EiLsZzl7xHl%2BJmo0gwVGi%3B8413b22a76576288eb63996488094f4703ea26802b1c5aabbd632a209cc92f77%3B3.0%3B1660889738923",
|
|
||||||
"h5st=20220819141538957%3B3336574316012124%3Bef79a%3Btk02wd7f41c6618nI4iytyi0SlSrVgfadn8ns%2FSlqDNVtGwsZo361EzWwHS3HmJzphdZKRz14%2Fg8wVZGNd%2FM%2B1ypO8NE%3Bbca5e0103d8f12e58c9758543533e44be7f01f0b7a28a8a94266033bf29bc774%3B3.0%3B1660889738957",
|
|
||||||
"h5st=20220819141538991%3B9350763349458833%3Bef79a%3Btk02w8cd71c1218n4YASTLEiaUnAdnbbOM%2BR02Et9HRl3Uwoxe8%2F6ggfFj6wNmpt4n%2BV6hk5p7WHjtg7yQUUfhZu9khM%3B03494d35ecc05c8a631222ad589eb5fe94d0fed31cff277c89683b0197cc6bfb%3B3.0%3B1660889738991",
|
|
||||||
"h5st=20220819141539027%3B8428777605966878%3Bef79a%3Btk02w9a731be018n4YASTLEiaUnABDnybpk5QvwQzKDRV6K56xb%2FO2dVzGn%2B5%2BhEcC1pHuzywmjS7sjwO4gFh5nA8Fv3%3B221c055a878c08ff65b91f41a70af70493ecd7d715055503345fe6196ad49083%3B3.0%3B1660889739027",
|
|
||||||
"h5st=20220819141539062%3B1798422503432250%3Bef79a%3Btk02w84701bbe18n4YASTLEiaUnAynAiIuNQ0JBDnRESaMDLR5m%2BoO2yU1lRTsD%2BZoRzFCei59kWSA5m%2FUlvnitmPciH%3B2cd90494be74d36df3025e8c9bef8def3602c296bbc8236eb3d13e7b513abd61%3B3.0%3B1660889739062",
|
|
||||||
"h5st=20220819141539111%3B5859435221858283%3Bef79a%3Btk02wa6c11bbb18n4YASTLEiaUnADA1PebfydDJqOrbifSmlXNnbr2kSe%2FyQKikD07pQLC1cOqbU0X8CAvZq5iM6hF9B%3Bd047fda8795f024c7286a31b384ae541674f8f7b02df01c678ea87f58f2c54b0%3B3.0%3B1660889739111",
|
|
||||||
"h5st=20220819141539152%3B3330419875434067%3Bef79a%3Btk02wa6d01c3f18n4YASTLEiaUnAto7dNs9Lx%2BbM6tGHHmUgjN7sGm1xPAQojoYOVwqiRQp5fk%2FkhDTE%2BcckvSAgQi%2B9%3B0b1315c44513b27fa40f93d3b5eb8235009773641456c98de29f059dfbeed390%3B3.0%3B1660889739152",
|
|
||||||
"h5st=20220819141539192%3B1211177894311637%3Bef79a%3Btk02w96a31bd818n4YASTLEiaUnAe6lo%2BNGqXxtPzTaBS%2B10B6ySxSz5EEtPmCvafHaemHz2r1Vw%2BtH6xJ3%2BCTEaVvef%3B644ea408cc112ef691f389eb092a87d65b5322da431adc298b6dbc33f6860a94%3B3.0%3B1660889739192",
|
|
||||||
"h5st=20220819141539225%3B7751340288177935%3Bef79a%3Btk02w8d0c1bd218n4YASTLEiaUnA0bLW81U3jmVNuQc0o3vfU0TBXcWqPy%2FdrgsCMngH8vkfbUG%2F%2BRpsazaMKpOMoD31%3B92b7739ccd7a51e0abb29b9c5a2372c00fcc82275a197c6a7d4e61ed7415ce1e%3B3.0%3B1660889739225",
|
|
||||||
"h5st=20220819141539257%3B2240735204068164%3Bef79a%3Btk02w8e4f1b9c18n4YASTLEiaUnAZm%2BDQs1CkTJqPFgymrVh3B7CkjuIMsC3aGQrHN1Oa2w0E6ninQmhM4XZWnQoEJKR%3Be17101167fe7ec3250bbf4ce0608049a86eff2ab759c3f1345ec54d700fe01bf%3B3.0%3B1660889739257",
|
|
||||||
"h5st=20220819141539293%3B4894886705844886%3Bef79a%3Btk02w93911bc618n4YASTLEiaUnA4CdkLnmskIm0jdHFJLBiEPEgSNJ52nFDILreZxwLAdtnfVO8VYVYJAQxJRJv28My%3Bd61f9e279959d1f6b029e69f602ea6ab5cfebd261ea550fcbdcad1a7784d5072%3B3.0%3B1660889739293",
|
|
||||||
"h5st=20220819141539325%3B9535823916478509%3Bef79a%3Btk02w90301c0618n4YASTLEiaUnA3LMMYPW2HsjWiBwNl18sCY4UXEyByZNsLXoydjGGRl%2FN9eYbSvgMvemnv54AJc2d%3Bd0097eb1d6a84c347395cb0a7fbfdff704009b1bdfcc0bd79f5949f3d0200566%3B3.0%3B1660889739325",
|
|
||||||
"h5st=20220819141539361%3B5560005638947458%3Bef79a%3Btk02w69151a6418n4YASTLEiaUnAmflpd6jIVUT42eH17ZR6dPh2TZbg%2F8V4DEMT5bcGGSm362AQEKPqMM74su2asILz%3Be9936ceb9d4c5c0f748eded8561cfc3b73580f5759084cbd49aecd54b099bed0%3B3.0%3B1660889739361",
|
|
||||||
"h5st=20220819141539397%3B6653059451789259%3Bef79a%3Btk02wa4b11c9318n4YASTLEiaUnAK8GlXflNBA%2FkyhCv0wVnz%2BDiwnDMaldhcT7btA%2BzRF%2BCKPsyua4nhU4ssxK%2ButZG%3B8895fa4673155f0b23227aa62344d7c5f1e0ed2cd389b35a8cefba60fdb1bd40%3B3.0%3B1660889739397",
|
|
||||||
"h5st=20220819141539436%3B6889143517727085%3Bef79a%3Btk02w75221b2318n4YASTLEiaUnA2OjN%2Fs5aqLUZJ593oRN3pclL7qXrF%2B8JzhEHzbn08sjwADZ27cDHNzGV0XxkPuCA%3B6d77c7e41590d8e54e0672eba2d13b52840bc7d12ba3bb352aac3fd922caaa56%3B3.0%3B1660889739436",
|
|
||||||
"h5st=20220819141539473%3B8182702413651199%3Bef79a%3Btk02wa6f31ca218n4YASTLEiaUnApDsrJS4XjkWI8oQmtCLKc4o5qk%2FoFk%2FuS5i7opgO0cpLHChEytm6piUnVFesAlOj%3Bf5fe4006dc40a5b5d88e9f545b99903e9bb261fe37b9048b8b3dff630b52c28a%3B3.0%3B1660889739473",
|
|
||||||
"h5st=20220819141539508%3B0014697783270373%3Bef79a%3Btk02wa9141c3d18n4YASTLEiaUnAwV4RnvNAR%2BaOxxIk%2BhU3aq3BeakJkqysYxpRc0yKJDwOXd5FHBDSxnH%2B%2BEWCuhSt%3B5464ae55dc4484f14c8612ca8c3850bfe3792800ecdf3e06b4f5eb76a56de2f5%3B3.0%3B1660889739508",
|
|
||||||
"h5st=20220819141539545%3B3838318810623759%3Bef79a%3Btk02w7d641ac918n4YASTLEiaUnAOK7gj5itJV%2FGVHVe6saAVyfnQEoTD90g45LsP73qsujGT%2Fc8Pt1l4fu9AZ408IcQ%3B2881fed0b70b3ef86a7801bbd94a3d526dfe53e55e65f9821348593e1d953479%3B3.0%3B1660889739545",
|
|
||||||
"h5st=20220819141539582%3B5729533040640541%3Bef79a%3Btk02w78b61b0b18n4YASTLEiaUnAXKJOFk8xDFoCfrJ1u72DHv%2FWt5iOzH4MNn2B8quCWAsHRQ8wEVaxeM3Usc7HUlL%2B%3B9f4572c83e91e56c05dd02d87a584b56e2300f1433787b62cc1183d9f1a0dbdf%3B3.0%3B1660889739582",
|
|
||||||
"h5st=20220819141539618%3B0291418639241756%3Bef79a%3Btk02w97e51ba418n4YASTLEiaUnAUlJHGnoluUOiR4%2BQuK%2BZuop4gmGBGE24S6rGxmdlGIrK8CXkUOXpvAvZ4NewB%2F4E%3B493c8bfccb3106adef1c31045c823320b5a741cf196e8d02ebe56a6eb01d3eb2%3B3.0%3B1660889739618",
|
|
||||||
"h5st=20220819141539662%3B9387483625104279%3Bef79a%3Btk02w95cb1beb18n4YASTLEiaUnAMn67tot9vo8NwIEUDx1uhPb9iEB0N6mxCMVEDdbfo4W0hATKqa2xyzSZxFUb5bOH%3Bb0d8eff41f9328e142a8698c57bf86953ac9d761e63225d6bf82e984b658d270%3B3.0%3B1660889739662",
|
|
||||||
"h5st=20220819141539705%3B5936677774267070%3Bef79a%3Btk02w7b681b9c18n4YASTLEiaUnA3cs8CqUML2cPa26i9%2BY8Vpdm8xqNoSb107fLIdESNhWrxnxGPHdanAEdOc1VvtMG%3B74b344ef039ec4ca6c8b305a33894cd1b973027794f51d8c8363d09413cfd3a3%3B3.0%3B1660889739705",
|
|
||||||
"h5st=20220819141539748%3B1127093646842474%3Bef79a%3Btk02wb3611c4618n4YASTLEiaUnAzxm4hqSeY8QTBS2hwq0Jq6I9pbmnIyj7hm3JP5kHgahZvljxsi92tIKnFhB7S%2FJ6%3Bfbc54f9b2dbcbc44f3654a0648c1eed4373a331da2c17d5f7e0313a133aced2b%3B3.0%3B1660889739748",
|
|
||||||
"h5st=20220819141539773%3B0116211253728128%3Bef79a%3Btk02w95431ba518n4YASTLEiaUnAcZqq8ZbpAttw7Wj%2FH0PQE4rGBX%2FB5kcJwWXl%2FtqNTCNoHVt42OpVtK3a7moPbEq1%3B01aff455f85fefcd815f926bf7afc7c84ddca53ae7859a8167b67ebd13c577bb%3B3.0%3B1660889739773",
|
|
||||||
"h5st=20220819141539800%3B4259448362125016%3Bef79a%3Btk02wa05e1bbb18n4YASTLEiaUnAHP0vfKqLk%2FRh27khrSbqboPNz1sYcBOovM4CQbIvvec60jPKYT7cCBVLsjR67e4B%3Bdf4d69b09f4b560fd4867f4a97356494e9c45c69eb459df527f44f93d9426d80%3B3.0%3B1660889739800",
|
|
||||||
"h5st=20220819141539825%3B4244809756446425%3Bef79a%3Btk02wbbdb1c4a18n4YASTLEiaUnAlTuHpvOJ9kwyzlidVQs9X3f9ooLSZKy4SJSLRA8yegs0gE6Cvg9MY%2FWH5pRRPVai%3Beb007e58f7fdd7630e1a21720f938dfa0014e5a87ea6ddf95a8e9218c353cc2c%3B3.0%3B1660889739825",
|
|
||||||
"h5st=20220819141539851%3B9901728305044445%3Bef79a%3Btk02w81d61ba818n4YASTLEiaUnAO5mL6S1apaFtfJcDGSv3XOo%2BNH9ELgOwqCownIVFMUqY2F4ds9LE1vSPRJgwmFlp%3B098a3ad31f4a193164e6752d35ca1fc0f4d4d36ebec510a363df3571601903d2%3B3.0%3B1660889739851",
|
|
||||||
"h5st=20220819141539883%3B8771893205874697%3Bef79a%3Btk02w5b871ab718n4YASTLEiaUnAK6o4xFFjxC%2BKAhCpkeULP%2B%2B92JV1Z4l91j1RL8PM2nWUfkR75mPrWQMufNimbkBb%3Bb4e290bfc36c00bb95430cc540ec4b6ebec79f260b93123eaae2e9c24d39b17f%3B3.0%3B1660889739883",
|
|
||||||
"h5st=20220819141539923%3B9348066729761162%3Bef79a%3Btk02w5e3e1ab418n4YASTLEiaUnAiBiZccqBb26H71%2B32s%2BFZmR%2B7JKh9FxsHOfNKJOYZTXD39rpB%2BUpGfwrjDXDiINg%3B858a7730ccafc744358fa5c6836bfb3ee8cdab2645685acf56d624abd6b50834%3B3.0%3B1660889739923",
|
|
||||||
"h5st=20220819141539959%3B4576123302288241%3Bef79a%3Btk02wa65d1c5a18n4YASTLEiaUnAeuiaC0qYDweLDpMU%2Feag%2FDgHFs6CWVrjqddUWY%2FWhafw%2FGuxM2nkEGNO9kNmGiLq%3B8b88ccf7b0ceaa02ec2672fa61d323db8e96a6752047c61409e189f17e7d8d7a%3B3.0%3B1660889739959",
|
|
||||||
"h5st=20220819141539999%3B4805931126535770%3Bef79a%3Btk02w991c1bed18nWTTHQZwBuvTglT%2FMZb9VVcC2EEkbRMABn2wEBTVqoBm2051iRBojxjYDm2yhMEc2CxYHGoMymKlG%3B19a05ec529309455e037e5561acc5c1e44c89755c579daec735128a834da6924%3B3.0%3B1660889739999",
|
|
||||||
"h5st=20220819141540033%3B0255685417253597%3Bef79a%3Btk02wc4b61ced18nWTTHQZwBuvTgprWKMUyKY%2B0h%2Fw0qjboLV2Dh8dXPJzyKoJkxy5T1yDsLwI%2Fs47bMDpruxNn2KyXT%3Bec62f5f2a48d2c9265c94daeb6e11fdb8cdae21155a09c9a8d770a536abc587c%3B3.0%3B1660889740033",
|
|
||||||
"h5st=20220819141540066%3B1963635974203119%3Bef79a%3Btk02wa1d31bb518nWTTHQZwBuvTgow5x5NLI%2BJwK3Sf5vVUM8cJ1qr%2B0oE0wSeRGpuSS5hUGhXCzJzuTTRBXPO2QKdU%2F%3Bdf978082ada6f37ca92c38956f66d06ce87b538cfe3c01ccc53dab147b7c670d%3B3.0%3B1660889740066",
|
|
||||||
"h5st=20220819141540101%3B7958801256593565%3Bef79a%3Btk02wc42d1c9318nWTTHQZwBuvTgt%2B5qtS0m7TkfNVvqJsoK5ZUTafTJaKlVhWu0GCu0BKGa%2BxuBjuWvN%2Bpke2lAM9As%3Bd523ec3ad15e3181b9f40ed9b581d45877fab5240dba4aeedf9a7ebd3eaee6cd%3B3.0%3B1660889740101",
|
|
||||||
"h5st=20220819141540132%3B5676692170875565%3Bef79a%3Btk02wb8be1c1118nWTTHQZwBuvTg%2BKtvGbuc7oBYCJLpKFqukMMJrHUdp3G2FfCYgCbPqGniRq2y6XD%2B5Pw3FEUHmcEf%3Beeef2d54792abda1c9ab58a61203dcb89bf2c7a01468be973ca580646eb9bbcc%3B3.0%3B1660889740132",
|
|
||||||
"h5st=20220819141540165%3B4512744380896491%3Bef79a%3Btk02wa5881ba618nWTTHQZwBuvTgzD6nPNb%2BtX9G9sBIw3xPjx%2BSgM0AkFxe15pcAt890kjdIpxsOOKg10A11Dycde3T%3B70c6f4f87cd5719d24ac80ed7c88a6d1d57f4e358585c882660ec00f176b4ae2%3B3.0%3B1660889740165",
|
|
||||||
"h5st=20220819141540198%3B4897731317650130%3Bef79a%3Btk02wbdc31cf918nWTTHQZwBuvTgAmGOFTT6r%2FYaDnSRrrniaSMJHEpNNRF6lxPNgCrpJUSuo4LhAnkoVSWDlOigpkg%2B%3Bcf17114a0e868cc8ff6f2ff4a5b36f04d7d0844ea9baf370667a5c0eeafdfa8c%3B3.0%3B1660889740198",
|
|
||||||
"h5st=20220819141540229%3B3415338817963339%3Bef79a%3Btk02wa44b1c1618nWTTHQZwBuvTgMXuKX29B5iiPLpVYgqAoCovk04Gj%2BKAT71DESghKFUiw0bsbIjY2dmoWbEJYbUUc%3B0aab39b4b70410e7e3505b4e81d765cf5bb6e33bb1097556438313c2820b6246%3B3.0%3B1660889740229",
|
|
||||||
"h5st=20220819141540270%3B4710663582656231%3Bef79a%3Btk02wd2b61d8318nWTTHQZwBuvTgVRJK7o%2FIdnALQo1Nmdutklge5Lf5rsls7NcoOAsTkhsirx1lyHg6LyoEvmBF3q2p%3Bf0245df89aab96f5cb1edd7f15dd522d10574e16082acc5d9a9be2660edc9031%3B3.0%3B1660889740270",
|
|
||||||
"h5st=20220819141540302%3B9763055081442130%3Bef79a%3Btk02w9b101b8418nWTTHQZwBuvTgRr2TLK5AMbXrGW5J6u4olNp5tjQZ3q7LbG9AggXfOQbZMjoPI%2BOSDK5qM3tBHRJs%3B2ab09609e8eef6e3db54b5d25b7c4c042adb19bc7745749e3cc6976848b8f187%3B3.0%3B1660889740302",
|
|
||||||
"h5st=20220819141540332%3B3133349263316865%3Bef79a%3Btk02waaf51b1b18nWTTHQZwBuvTgjrMprJ3RZScePistbgO3619rSMa0FQ69ZLTcsG%2BLT%2B0We9bGkBSNNNROl3Gk%2Fg91%3Bb09759526ccc389b6563af0b755aef469e930a3ddf89fc47d352abc9bc57db33%3B3.0%3B1660889740332",
|
|
||||||
"h5st=20220819141540359%3B4027936839485881%3Bef79a%3Btk02wb4261c9518nWTTHQZwBuvTgyaGX2sOj4E1uE3peyfeYf4R4EP38pnDoue7XAa%2FhhsVnJCQ6U79bLqryklYefgUH%3Ba1a0adfc9ef94cda297825527ffcc6d3684f6b78acb1afa55ad805d697d86bd8%3B3.0%3B1660889740359",
|
|
||||||
"h5st=20220819141540386%3B6728015111537442%3Bef79a%3Btk02wa5b61c1218nWTTHQZwBuvTgN3W22o2MpuTlygjd8D3B0%2FPkIH8hsOxcxj%2BmR3e0rhog9eWCg9RiwIyoi%2BKN5hLF%3B94ad5b0325fa6a39fca83a7ba1d64add6e7a0df168da95104b704c3641cedefb%3B3.0%3B1660889740386",
|
|
||||||
"h5st=20220819141540413%3B0372503960361192%3Bef79a%3Btk02wc79e1d4918nWTTHQZwBuvTgkBK%2Bsq4xRTcrTeh%2BKASaOnQJVpNhUzJ5GMcBmAtcDrjfVQmQrJaU7ooljAbqMIvf%3B1ba2474ecb6abe798cd6e3b064a83ff1353e0f595bc1122ac9faef3d49a373e7%3B3.0%3B1660889740413",
|
|
||||||
"h5st=20220819141540443%3B5050582467159906%3Bef79a%3Btk02wd93d1cd218nWTTHQZwBuvTgLgixyR5Zwk%2FtoRxyiQJ5%2BAH%2Bww4LqhXRoAgQyE3IqCYtCFwQsnVns5vDSHy%2FE34Y%3B16bce8b3420de382f57b24cced055f7c171b4222147ee41d30109264152987e0%3B3.0%3B1660889740443",
|
|
||||||
"h5st=20220819141540473%3B2059897998648860%3Bef79a%3Btk02wcb9d1cac18nWTTHQZwBuvTgjziGDKumXdVlN5xet81%2B%2BTynk7JzE%2FrhYX%2BdgEyADmhyX8UUYVuMo8C9dEDkZuML%3B7f89f168a61d16ba43dddd1f2622611059a73cf76b80479dcfcc27c5641c018f%3B3.0%3B1660889740473",
|
|
||||||
"h5st=20220819141540503%3B7373262661853069%3Bef79a%3Btk02weff81dc218nWTTHQZwBuvTgUac6aw2sdJqmc5Gtdcd6MHfnojyvYZVhqEqdOIVp3kzUfPymnOxgJRpA5HVbM35n%3Bdad842985fd1ed319cc6ea80cb2fc27a6d53593605d587995ef7177119c67d35%3B3.0%3B1660889740503",
|
|
||||||
"h5st=20220819141540537%3B1121429223650719%3Bef79a%3Btk02w9e021ae518nWTTHQZwBuvTgm7eLJKzPqcu4uam10kBTFjQTIWJq1D1WNF8aMI3G2LBxUrO3HBLKCz5AUbR8TY8I%3Bb77d77dc227088e8524bff69dcb91b1306bb253ded4999ddbb5cfc7b3fd35f4e%3B3.0%3B1660889740537",
|
|
||||||
"h5st=20220819141540579%3B1092667846681651%3Bef79a%3Btk02w933c1bd318nWTTHQZwBuvTgU6nY%2BCWR%2F0Vp%2BwADxa4nbZ%2Fq4TU9koKMSGqOiWP67GoumDDe%2Fa0TmZkxwf6IsM2v%3Bc0627dee46ddd08a7d14f64fbd345ebea16dcb44cdf80508897f4a269ce995eb%3B3.0%3B1660889740579",
|
|
||||||
"h5st=20220819141540618%3B2914003560338581%3Bef79a%3Btk02w9b231bfc18nWTTHQZwBuvTg2Nh%2BVcECMi8Xl6imw81tlNSOJMznEoGO%2Fo3BE2FMUeIx9Rj8vREhZSTKQw4xriKp%3B9adf8c2c66db37be877e0fb39af1177805cb8c4883848eb33459a672f7c1131f%3B3.0%3B1660889740618",
|
|
||||||
"h5st=20220819141540654%3B3882887406217137%3Bef79a%3Btk02w745f1a8918nWTTHQZwBuvTg3NCK18rq77r9NIcX052VdtduONRj2NdWnD40CIJ7TKGLFk0PPZH3lj%2BRnR7oZu6G%3B0ec232a76bf7cd8c044ef368ad527f71e315859eab44f3dd669cc6c1accac4a6%3B3.0%3B1660889740654",
|
|
||||||
"h5st=20220819141540683%3B8134959545949600%3Bef79a%3Btk02wbd781c5f18nWTTHQZwBuvTg6aLXn4fHhwiyFo53chczsr5rt6OfgZ73T2DC28wPFT5p13gxnHdeJMAhXq0uKkrB%3B6734b83911c249ceb1a47afd6b9aac2ff01b6d53de7d019640220550d78a92ff%3B3.0%3B1660889740683",
|
|
||||||
"h5st=20220819141540715%3B7799824665366954%3Bef79a%3Btk02wf0351d7418nWTTHQZwBuvTgIXjpLhoHjzZfkb9xWpbIPufuYF%2F6cDTd4ylcUUxqvGUcMms8giy%2Fm3gDeJL7%2BNKt%3Bd3be38817ec594293c41c2d4cf3b040eb25810a24f36eb7470b317bc8f3c8249%3B3.0%3B1660889740715",
|
|
||||||
"h5st=20220819141540744%3B8384791059784776%3Bef79a%3Btk02w8d441b7e18nWTTHQZwBuvTgpN5Y2JNFLD3DeZtvPrlSM72GXTI9G31bNznYHn2%2BdaM07AsZxk6OxQWztl2ZnFID%3B2e28384670bb523d3786ceb3bfb5b71ce7dc3f3410bd99ecb006483ec58c3fd9%3B3.0%3B1660889740744",
|
|
||||||
"h5st=20220819141540774%3B4309996162996690%3Bef79a%3Btk02w80ce1a5818nWTTHQZwBuvTgOeE%2F3n5V49Vo8Zvbv2Z%2BSWXit3AcRRCB6sZNEO6a3kF0aL8QHjTz3v%2FFHPG89LB9%3Ba9bd1a3e1087d5f9425a28e2041c52f02830b83fb2b3b647976338a19c7c7865%3B3.0%3B1660889740774",
|
|
||||||
"h5st=20220819141540808%3B3910621373379853%3Bef79a%3Btk02wce221c8118nWTTHQZwBuvTgtnVqO324u0fMszXexgSnXAgu8x7XgwE4lNucbUgn3P5TZ72rMD86x6Q7o0G7bhwp%3Bbc4e186648db6cd505100445423d889655344a22422bee44b6134927d36e5d20%3B3.0%3B1660889740808",
|
|
||||||
"h5st=20220819141540846%3B7285962213737073%3Bef79a%3Btk02wc59a1c2718nWTTHQZwBuvTgXgUeliRSZ%2BgRRtynDZb9IP88HkCdyktG2roBOFMxkL49KJk64lsdgJKiqRkC%2F03E%3B169fe53b5ae312f25a19b34c32eb9f3add5bb2c95b38792906b4bec0307fbfd6%3B3.0%3B1660889740846",
|
|
||||||
"h5st=20220819141540889%3B5627912030566533%3Bef79a%3Btk02we3da1d7218nWTTHQZwBuvTgFk9U3utIcixVTWfeYPLhxKnmarLSepxMuEOO4ljZ1tgP4BzNJsMXp1tKtsY73OKz%3Bc871b889d88b39d64a586bd0b7975ed411cafd74f65a1543817432717a2cc8c0%3B3.0%3B1660889740889",
|
|
||||||
"h5st=20220819141540931%3B1493632000577600%3Bef79a%3Btk02w96881b3a18nWTTHQZwBuvTg5Fiupf0CZpG26J46UOwlIgFzAOQJSAP6k5boRGTBkDv9qF5ZtpFK1RqfRG6BG2pA%3Bf6aa948c5211358018ec0fc2c4fd4bb5147ae286adc3bee9429a54777e27434d%3B3.0%3B1660889740931",
|
|
||||||
"h5st=20220819141540974%3B0063829567464613%3Bef79a%3Btk02wc0831ca518nWTTHQZwBuvTgeEpx%2F8tlA2bR%2BsFTXEAUHRkoHblcQzCqjHeq0vp73dmngmJQMxa5NSsOS2PVDk8g%3Bbc2d62caad31550c3cf8689f54c2f72906a33b6f7a2e6afd53b38c7135521b9f%3B3.0%3B1660889740974",
|
|
||||||
"h5st=20220819141541011%3B8574426221410190%3Bef79a%3Btk02we6b91d5a18nhib0gHSnh4SUWrab7YcTDHYUCuXxdthdjBszoSRuotkkYv%2Fvuo1r3hRtoMBiZ%2BEIEm6HY3Uq2eDl%3B46c5cfabf5d438f3708ecb24ea7acdd802670e3b7e1156e541de54e6c1ff9c37%3B3.0%3B1660889741011",
|
|
||||||
"h5st=20220819141541049%3B2625190552423564%3Bef79a%3Btk02wcd3a1cff18nhib0gHSnh4SUloximPOSHI0HXnWWtNdDcnc1HJeul4wexLhoCL%2F6pPTExf8JeKtzjUrxqNcJAN7H%3B07b145e54be5f24be27d0e7c101496bd8ea6dc2748cb468cdb3c5508e8791195%3B3.0%3B1660889741049",
|
|
||||||
"h5st=20220819141541081%3B6415748809377548%3Bef79a%3Btk02w6d7d1ad518nhib0gHSnh4SUS0KJPY5mPbSJ2dv7%2FJF5OKl354Da1pKccLUppe06bOZ8Iz0dOlt%2Br2fYMUm3EnmG%3B5131df30c8feaf91af9fbcff75ed009773f8ac8aa11f56a1e54052f03998b03d%3B3.0%3B1660889741081",
|
|
||||||
"h5st=20220819141541109%3B2412413907225146%3Bef79a%3Btk02wb3591c6c18nhib0gHSnh4SUEJUNvOH893QApltlgz8wlsM%2Fg6vITMQmvee3ryK4AATZcZrtcj4mzLlM6Jm2PFTH%3Bbeb461aa863c1502d9b30812a6e054b961fb90458535b1da8a21d242cda0e416%3B3.0%3B1660889741109",
|
|
||||||
"h5st=20220819141541137%3B6342801872007850%3Bef79a%3Btk02wb1541c0118nhib0gHSnh4SUkoZWpEdVotBXwA8V%2BhCEveImh7%2FT2SxuCX92EyY%2BJyVyiTK0M1syN2aHuFR8xk%2Fa%3B29619d79cde5db3dc4bf929af5429b046de815c291e2c20cc9a42fa2055e3ae7%3B3.0%3B1660889741137",
|
|
||||||
"h5st=20220819141541166%3B4022398571800447%3Bef79a%3Btk02w88f61abd18nhib0gHSnh4SUtlgBXcGO7AN7Ea9%2FjFHfzJjknKS8F0PYA7kWr1G%2FFhTzfjE5A6ix8n9F8f8f%2F78g%3Be05ca30fc0fd4ea6ca093fc0ce48f019a445ffde572ef7ea4e7e45cd5bd1188d%3B3.0%3B1660889741166",
|
|
||||||
"h5st=20220819141541200%3B1545362935083145%3Bef79a%3Btk02wc0c71c6c18nhib0gHSnh4SUfZbnjnFvq7FpSx2YJvfc9FJT4OUQyqCV9TBRqhBSpi59sEVwENQqAXtD%2BDSyl5Ks%3Bc339c681a6b72784dac51c4005e58da8c5496145aa02539523821bf582bc2f13%3B3.0%3B1660889741200",
|
|
||||||
"h5st=20220819141541234%3B4407108629474807%3Bef79a%3Btk02w90201b1b18nhib0gHSnh4SU6SR%2Bk4H6V%2FQkwZKPHRVrn76cxwflSqG3dowGePUL%2BL%2FmCjlBKi%2FRzUw70CN65MT1%3B54a57e33bd9864ebc540434b908a796519952865fb8d337fae65f8417c6eb9cc%3B3.0%3B1660889741234",
|
|
||||||
"h5st=20220819141541265%3B7637959824609917%3Bef79a%3Btk02w7ebe1b4218nhib0gHSnh4SURM2%2Bz9Dh6Ql6c1f%2Bq0K5%2BWAzwtOF3czrcILGUiJqLIl3JoTYhc3ep8jk5POqS4a3%3B1fe29179d01a5cff6d29d1f920c8f8b25f6952d23bfb6663f6b586da3c18169d%3B3.0%3B1660889741265",
|
|
||||||
"h5st=20220819141541295%3B0817243585555352%3Bef79a%3Btk02w67ae1b5a18nhib0gHSnh4SU4PsFjT0f9eC93TFJE2Q%2B3S9r2cd7CBXqKPnBG7NkSHNuPM8fmn9fNrlfcjYambpb%3Bc489427f7bf81eab42b3e941d1b2a9c16c9726f39ff8ae9ffa84914038157a9c%3B3.0%3B1660889741295",
|
|
||||||
"h5st=20220819141541328%3B0457821292282891%3Bef79a%3Btk02w8c5b1bab18nhib0gHSnh4SULy2X9eIAM%2F%2FaBxyPLc0LAfLaFSrPdt%2FThgJS7YMkNxfI4%2BeYhtV6M1%2FXRzpUwQPm%3Bbb1451fa91563ff5494f99ac716bc15b61bd88acb36af22ac0ac5ca902fb3f90%3B3.0%3B1660889741328",
|
|
||||||
"h5st=20220819141541371%3B9924894375249107%3Bef79a%3Btk02wcedd1d0018nhib0gHSnh4SUzTwYLkv6xNXDVDrKu9vbIRqxkQhAxS2JvbwEF5RBdt69GSa7YCcp7IKqovsoCiiF%3B933fd4ee17bcaae5e6aeb8f760dd1c67eec2004e0347ae58ac3c5ad1493eaf01%3B3.0%3B1660889741371",
|
|
||||||
"h5st=20220819141541403%3B9028225237149298%3Bef79a%3Btk02wb8a51c1418nhib0gHSnh4SUFKlfSuU%2B8gcWdqA8xk%2FwVvhdiB4ZhKWBVTTAljf896Jw7zkzmuPvLev3EILF37E%2B%3B970bf64168debb9c6815dc4a66b27394bc50512752aff337dc0c1964c68be22d%3B3.0%3B1660889741403",
|
|
||||||
"h5st=20220819141541432%3B3393152084946364%3Bef79a%3Btk02w84c41b4118nhib0gHSnh4SU%2FWxKaTW3Pt1UW5TYBBT%2BNuj1ZwMf5JW5S0ME8alPpuOekrnL8Sk%2FCXgSiC0RfZ0m%3Bfe7f6233b1c5f637c21103786c186cb192bc1b7210f955b915b2b44dc2771567%3B3.0%3B1660889741432",
|
|
||||||
"h5st=20220819141541459%3B1009973465398327%3Bef79a%3Btk02wd61d1d8d18nhib0gHSnh4SU6PJ7CbgAtXPxaKdaxmgUdzSmxBkf2hFmwHCHobcvzhOgvnWbURK6MhvPY6pGoXh5%3Baae090affbd5fb4caf81bc54f3f63618ef76d576b91d91c7e1a936154cf9232d%3B3.0%3B1660889741459",
|
|
||||||
"h5st=20220819141541492%3B9004189767772263%3Bef79a%3Btk02wa4941bf018nhib0gHSnh4SU00hwwm%2BXpObY5v14lQwk9iIKBr5LEPvM9Qqr6s5VBoKRwclR9XpbDGlV9bciV9HB%3Be5b35aa0d86cd6ba8702a5241b5b9a809d250cc62e91d4bba448b888c53d0163%3B3.0%3B1660889741492",
|
|
||||||
"h5st=20220819141541524%3B7762359679048693%3Bef79a%3Btk02wa74d1be518nhib0gHSnh4SUCi6by3avYChn9sDaZe0L8zSesGF%2FZbQ4q%2F6BRymF9r8GpQlyiwDUhIP5fFx53Y8m%3B5088b8736be49030bb2a3f7a9b8a1dfca7da550cf083efdb4dba558cbdd7fc09%3B3.0%3B1660889741524",
|
|
||||||
"h5st=20220819141541557%3B0756398700447853%3Bef79a%3Btk02waf391c6918nhib0gHSnh4SUgJzOBJx2Gtg1WlqUOiW0Y%2B7RoK8RnCsJluGXFwS2rXfRiwsXHXke7CNwDBCfNgcS%3Bcb6dbfbcfe7fd67a236fdfe6c30742cd24a026801254225a8d75aa2e393f826b%3B3.0%3B1660889741557",
|
|
||||||
"h5st=20220819141541593%3B7562083915755152%3Bef79a%3Btk02w8ba61bad18nhib0gHSnh4SU0lXE%2BkGx3X6OZA10uyPHok7Rika4fNQFjfcm6Nk5Bb4TCjk87EdccWrIea9%2FmxSq%3B7d1fe93515e2ad112124c212d1aeb6a7bad7a04f46c64d6f1fca59e9543c2963%3B3.0%3B1660889741593",
|
|
||||||
"h5st=20220819141541622%3B1907868268647580%3Bef79a%3Btk02wae021bd218nhib0gHSnh4SU9imZQRXc5dneXxtZ%2B%2BvAyaO3R6tFiUDKLaw%2Fvn33aAooCakOxER19p2B2BZg1yeF%3Bc7e44a3dfd4e2fa4ea573cb549b3bc286267d0769c9a425d71d2ae58b39d88ae%3B3.0%3B1660889741622",
|
|
||||||
"h5st=20220819141541654%3B7213623590423138%3Bef79a%3Btk02wa73f1be418nhib0gHSnh4SU9r1bgjx%2Fv1j2gt323zctrv2TM9%2BvVmX3F1IrbVhkY3eElhtMMRYv4CzNlX9DK5PW%3Ba1eb34fae9059aa648b95d5309166fa1c294a4960f832c40f8062661190179f2%3B3.0%3B1660889741654",
|
|
||||||
"h5st=20220819141541684%3B2101670658903248%3Bef79a%3Btk02wc5d11cb918nhib0gHSnh4SUiPvQQQOPkoEB5QsCVperXj9YjojbLj4RCafvgviAcI1AzlsvC3JD1%2Bc%2FhriMmReH%3B5e95223fd963b3c0dc03f47b0fb6bb37838720861e4a6ce64ff3ad5059fe6a9a%3B3.0%3B1660889741684",
|
|
||||||
"h5st=20220819141541723%3B0737691587230335%3Bef79a%3Btk02wb7181c6418nhib0gHSnh4SU1bIxDxdgnmGEo%2F4LsfZqpEe6h95Lj3ExCrmpw0N3xfdbKldX2u22m5DFeBcoIauM%3Bf0a42bfd133650d01e9462aff31056c4e7f2f4ea43603e05b0f6a51ac6de360c%3B3.0%3B1660889741723",
|
|
||||||
"h5st=20220819141541762%3B0026871010102153%3Bef79a%3Btk02w7bbb1b1718nhib0gHSnh4SU86iyj8DJAET3SOhWtr7j%2B%2BWaeD82JKh1tf89Xg7XSY95bxx6ZGghCUsZRx%2FWTuS0%3Bc556ed32bc4a6653343ff537b9fe67113bfa66836ff4944522733bbb8da4308a%3B3.0%3B1660889741762",
|
|
||||||
"h5st=20220819141541806%3B6346853710945878%3Bef79a%3Btk02wba651d6b18nhib0gHSnh4SUM812dNiULq%2Fc6yQ05nZyMpwRusBbSwdovnnsWmQFmXW%2BbG2KNxjzn7yysoG4ZuxV%3Bd58bf2c018505f1c02771b65e9474df6078c74ada203a57b6e43d96058a582e5%3B3.0%3B1660889741806",
|
|
||||||
"h5st=20220819141541840%3B7593640764807471%3Bef79a%3Btk02w95bc1be818nhib0gHSnh4SUD1%2BO2aGGzWG%2BIjl%2BULsjnWuplBDNBWcjvJqLjCac9BzKahArl%2BQVuJAHr35tjF6r%3Ba7b3f0f11b6fc086783ced37529db57bc314dd77312617ef2874b94f35632cc2%3B3.0%3B1660889741840",
|
|
||||||
"h5st=20220819141541879%3B7104932692646840%3Bef79a%3Btk02wb18e1c0218nhib0gHSnh4SUgACH5Nwg%2FrxuvuQNcHFrpsq5THXa44JSsnNI%2FzAlz4%2FY13BQNhFSsOLEdPpVKrRC%3B8ea64ffd2d7accede7a5991d8bcacfe9d8c440937194eb20222db3a7afc4bef2%3B3.0%3B1660889741879",
|
|
||||||
"h5st=20220819141541920%3B7843360987347415%3Bef79a%3Btk02wbe8c1c9418nhib0gHSnh4SU6QXFNIMuhvteTz0cjlaEHW0wVWZWJsZZ4RpcmDkk3SKv1ftkDC0yQVWgJpKjCFf6%3B7f39bd260c046ef594b376ae75469dcaffbc3fce5e07933b73b1939197580998%3B3.0%3B1660889741920",
|
|
||||||
"h5st=20220819141541951%3B9686713370246519%3Bef79a%3Btk02wa9bc1ba518nhib0gHSnh4SUAFct8YurGlY3Jyhs5gK3PcfTyBoHRGy1wtNE9M9KWRHYOCHvF%2FrF2MCRXVXC1yKn%3B715078d6262c1c2f49918fdbc7c2f300c69783ff660dd74f408ecfce0bec3391%3B3.0%3B1660889741951",
|
|
||||||
"h5st=20220819141541984%3B9358776602991471%3Bef79a%3Btk02wac801c5818nhib0gHSnh4SUm2BbrDpPShtwP0w8YK5lF4WRauOOTOQtQa%2FC23jg%2FcrNnHMsebvgMlezGkeCBDSN%3B299ee1f83b5c918e6a6c551927d891c40a29c57f66f69ee68bb66f370819e973%3B3.0%3B1660889741984",
|
|
||||||
"h5st=20220819141542016%3B7843212526170501%3Bef79a%3Btk02w9d841be318n9evlIWKH6bpAJBSavmz6rH1NUeu9oc4FBHyZS0DAIvMcyAHaiBj%2FrDbNDnATNCbi8LlMYuRooDLH%3B3338c8213a644c1da3a89a747222305d53859c4703577977611d58904b37762b%3B3.0%3B1660889742016",
|
|
||||||
"h5st=20220819141542050%3B3926618406563395%3Bef79a%3Btk02wa0191bda18n9evlIWKH6bpADWHp0%2FYSsE7uIlXzymhl5IUov5ugKG%2FT2VdJby%2BalKA%2Fu70jAkYi8Qzns1%2Fr56jj%3Be4f0c7fd89c461f6741e893a77d19ae109dcea47f0d0ef1331c33944fc72d2f0%3B3.0%3B1660889742050",
|
|
||||||
"h5st=20220819141542082%3B5665390128095337%3Bef79a%3Btk02w875c1afb18n9evlIWKH6bpAKl3rVcUPN28v80RdrXkcE9Pdv0Cqo0%2FaA5SrihJZE1aqcT5g%2FE6UNf%2FwHAVgAVf%2F%3B77f5b57628f732c4d629c79c9de8d9ebc79439ed58226bfb80d52c6c8aad4277%3B3.0%3B1660889742082",
|
|
||||||
"h5st=20220819141542119%3B7305929582455410%3Bef79a%3Btk02waf971c6a18n9evlIWKH6bpAT%2BwvNDG6uwa%2Btd5xbwaQJdPPRaxR1lN9KopHcUVF3u2SMxrUQ7w7UlQhHNk7uOqP%3Bdfeaea8c8c208dc18446e1387cf27c5335f50758ab96b163bc0c01b4f5c3d93c%3B3.0%3B1660889742119",
|
|
||||||
"h5st=20220819141542151%3B2899278916407778%3Bef79a%3Btk02wad491c1f18n9evlIWKH6bpAbP0BHFkjmjsvIc%2Bbhfst3gRFSZVLNJYjEdYEItxDT10g0uCvHhRb8BIAhbyciX%2FJ%3Befbcccfe563b721242917e5bef08e8543d2f5902278738f985a65388546781be%3B3.0%3B1660889742151",
|
|
||||||
"h5st=20220819141542199%3B7524261084989275%3Bef79a%3Btk02w99ce1bbb18n9evlIWKH6bpAEQThLRTkbnKgASK9%2BZLNk6mjrMyR1Ke3%2BuvtCrLZYCpV0FHt1Jckv1r7u9eX%2BTDq%3Bdf02b2aab3b17611dc4f4f97ec3607756c54d238a78c5c3330d827e8f6c466b0%3B3.0%3B1660889742199",
|
|
||||||
"h5st=20220819141542240%3B4728902677613743%3Bef79a%3Btk02w8d331b5418n9evlIWKH6bpAQDpCFdaMnkLDcJYPQRkGvCz42%2B3Y4%2FsqJTnNxj2PVb%2FT8tv27CjpS6WJE5wYIVqX%3B8712ae39d4e9e91506a76b9d081564988994edaa5cd73e8ab3adbc9ffb8c6dad%3B3.0%3B1660889742240",
|
|
||||||
"h5st=20220819141542277%3B9487319490029062%3Bef79a%3Btk02w7fb81b7718n9evlIWKH6bpAWKO9aLW9XmCp4i8Q326rUQV5CW4bQBudxNalYSUtOzptA%2BQqD9v4G7WQRU5zGehr%3B1aacea7da7972cec9ea2add6360bf7fa178daa7b2dfe82028ec7c12ab8aaacc0%3B3.0%3B1660889742277",
|
|
||||||
"h5st=20220819141542327%3B4250000703180930%3Bef79a%3Btk02w98e31b7618n9evlIWKH6bpA2MsjB%2Fe3bI0NuKWWGrySJ3pkJNlLoIQSeQHERktDytlxv3Arh%2BFW%2FCQIZzD%2FQH22%3B0c420db582e1cb89ef59e52b715b36974d886603aa94204258d232ef441dd2a1%3B3.0%3B1660889742327",
|
|
||||||
"h5st=20220819141542371%3B7154961783216018%3Bef79a%3Btk02w8c941b9a18n9evlIWKH6bpAi1iZWQxK0ij4ZDx02BMl7XIffPo7iFJGsbcSEv26%2BrICmiJc6KjJQUAdAZAmjeig%3Bbffbd2390639f986149ceb6dd5576ce92c21a91df5bb72a56a09408d9f448687%3B3.0%3B1660889742371",
|
|
||||||
"h5st=20220819141542411%3B7323864137782325%3Bef79a%3Btk02wbc401c5e18n9evlIWKH6bpAtyKmpo6ExDkwGXKHev%2BX5ffv4EnOb68CU2zpo2errLZ17yXhFFvmON8Eydz8NdB7%3B671e5918590e5cb8985e3f6b2e0210dba608ad388f521426b235041acdff71e6%3B3.0%3B1660889742411",
|
|
||||||
"h5st=20220819141542463%3B0466921030788584%3Bef79a%3Btk02wa4281b8918n9evlIWKH6bpAavLooO7NANqtpNE1futlHOr9luA126NdQcGZ5HD529hqRjhVleePD%2B58EbLw9YZU%3B6eb2c0dbf2d6d78e43d035c07ae11de846081227f42b382330648e6f2a3ba3a9%3B3.0%3B1660889742463",
|
|
||||||
"h5st=20220819141542501%3B8592041762268524%3Bef79a%3Btk02wa2d31c2f18n9evlIWKH6bpAy5jND28YyH5K3KsmfZNF5vGsmwQeKQtwG3LdSmXadciF4Nxi0ndYte1IjbVKLGEN%3B3385f558644df7a1e1dcf3650f5fa55f564d0b00cbb84abd9f33530726fdeb86%3B3.0%3B1660889742501",
|
|
||||||
"h5st=20220819141542534%3B7423643301987269%3Bef79a%3Btk02w9b191bd418n9evlIWKH6bpAAhfTzj8iU6WS5vX0w9qycZ9FW2GgABF3tDZt4WkRAD3nlrfy3YBOKTawLGioJSPR%3B350136cecdcae5172f8b0aef366a2f2f67ede177ea2903426a0b4d63352bbea1%3B3.0%3B1660889742534",
|
|
||||||
"h5st=20220819141542567%3B3374156209953902%3Bef79a%3Btk02wbe651ce918n9evlIWKH6bpAHjBWvYXS6k0cQyXiYb9bFbqx%2Fs7ZFlpxaIjYuXaQ5DgdlGbzuJ9MTdUXVWMemp3M%3B3730e1b8fe720c07ae26ec8c30d6364f53c740bc7e9d701b3580fde07539cd9d%3B3.0%3B1660889742567",
|
|
||||||
"h5st=20220819141542600%3B1057349950961883%3Bef79a%3Btk02wbdb21c9e18n9evlIWKH6bpAUUu%2FvWlzVvMvId2HGRU4pJSiIUSt7zgj%2FaGnYgVrfmWW90vkaaf9m8dQEM7%2FxAgq%3B8eff956737460c214b87ef383afee3977bbae6bd308738576b8d2d53fe3861a8%3B3.0%3B1660889742600",
|
|
||||||
"h5st=20220819141542634%3B8304285271119571%3Bef79a%3Btk02w9a5c1ba418n9evlIWKH6bpAqhsf%2B%2FD%2FPhHYtj6RwF5lapZNQ2EH8PleQrcPmyH7MTcMI1RHqXlFdjdBuA1%2FPLhQ%3Bdc508ff5ea7c0ebb9b0b48d515c64cb509d67af539b1f4fa0bf40bb23f7d4105%3B3.0%3B1660889742634",
|
|
||||||
"h5st=20220819141542668%3B0648581279818250%3Bef79a%3Btk02wc8131cd818n9evlIWKH6bpAv8ldwJutZNqralLK%2FvLybpJcg2TBH74boO8yeUOdOLCbt%2FBM7BfzPTGzcolS4wZf%3B098dfd63325db7fe013295b547dde8297e16833d9b6e825277dfbd771aff95b7%3B3.0%3B1660889742668",
|
|
||||||
"h5st=20220819141542703%3B9822829937588808%3Bef79a%3Btk02wbc931ca918n9evlIWKH6bpAp4vIU%2FyImaikZO4ykBXe%2FooRfaaBjN1VVpmCzcD%2F4fZPdxperLo%2FZ5ve2a%2Fu7tXO%3Bcbf9a09286ffc19ada03efb508379ac50bd46040a3633f06b3d06343adb10ed1%3B3.0%3B1660889742703",
|
|
||||||
"h5st=20220819141542744%3B2042768342243024%3Bef79a%3Btk02wb4f51c4318n9evlIWKH6bpAM5iLXrardRkVYHQDvQgO7PUhHmTg4UFDngQbkhzVJImQUuDxm6W%2FjV9NZaRR1Ez1%3B1999f6cf438591795ff3e0a5a1a21dadb1bd0222afad961853f48f33d0c091e6%3B3.0%3B1660889742744",
|
|
||||||
"h5st=20220819141542795%3B4257113901908830%3Bef79a%3Btk02w81401b1818n9evlIWKH6bpAPl0V6yo%2F0oVjLG87md2FrgEoc7zG%2FsMbQJd0RKuI46LPdKP6VW7uKMGAPEm5oujW%3B6fcac8a7fdccd588a0d0ba7ecf833067d5ea87cb62739792d29ceb3643c05f91%3B3.0%3B1660889742795",
|
|
||||||
"h5st=20220819141542845%3B0814352345757350%3Bef79a%3Btk02wadbe1be318n9evlIWKH6bpA9S1%2BaxEfEKrtovwvUnzBmFp6fMQGUXLOu6JlGdIZcDdIE4mHqFR1JwKSN2XLXJGa%3B7211d160bd06eff7d7ab6efd0fd9fbc37d48b65338f88465e9a653f454e0932f%3B3.0%3B1660889742845",
|
|
||||||
"h5st=20220819141542878%3B6965496278509317%3Bef79a%3Btk02wb0241c4e18n9evlIWKH6bpAhsn6oQBzpgN8MM%2FGsNgju%2BKIMa9jGOJpXe4hlHdTIQhiXw6kwHURBXuYF%2BaDq7oX%3Bc8ee99578c74d56eb54dd2d51934a3cb98aefb581adecaeca355abc7df5e4661%3B3.0%3B1660889742878",
|
|
||||||
"h5st=20220819141542923%3B0340688497581638%3Bef79a%3Btk02w9bb31c1618n9evlIWKH6bpA5YIBwKd%2B0hu1lKJcv9CmYE2KimUlVptFO0oWGxGvp5ivLycRqDg2o4bRRAdL8ZSa%3Bf7c52f1edccfbbb1c580176a439903ae13e1bd07a0d97e6741459aa79f8f4352%3B3.0%3B1660889742923",
|
|
||||||
"h5st=20220819141542961%3B7831314260848887%3Bef79a%3Btk02w82821b5218n9evlIWKH6bpAKd6Jl5Iti9Sx4LEqR%2FC857mhLYZ8eAiznJgKiQCDSZq%2BcMEYwnAM10iz0Lhm1buG%3Bf0e1041c3a771eb2cdb4db2420ce15fc0cd3814b64f839ca2bd4cd28e3c0e031%3B3.0%3B1660889742961",
|
|
||||||
"h5st=20220819141543001%3B6000329481037727%3Bef79a%3Btk02w74641b4918n0Di9DE6uofUfTJ%2B4bDYK7z%2BPKThXTtIs16w6nKtETpBT2krB4mB0QpuNUXRsPypM0LQuD%2BZNsMw9%3B190510d92df376fc87fe18bfcda869ff41fe7e4a9f2e98bebb436293d069efde%3B3.0%3B1660889743001",
|
|
||||||
"h5st=20220819141543039%3B9908361575195413%3Bef79a%3Btk02w90461c0218n0Di9DE6uofUfSc%2BFlrUqN4IEiRwl%2BZKjlQ2%2F%2FvFkFV5iYeJcuK1ijwZa%2BfAYRofjV4kdzJuN86tX%3B942dc0d53b1d4c55eb4553479f5c90feca4e61aa679aac36f699194be4feddbd%3B3.0%3B1660889743039",
|
|
||||||
"h5st=20220819141543066%3B2946013015185610%3Bef79a%3Btk02w7a8a1aac18n0Di9DE6uofUfBiHFtXyM9FF0bWT%2FzC8Ftx9xL9Sa7YWwmCZj%2Bk661gfTT%2Fv4hugAEDJ6QjO7u554%3B9bf4737f40e8b3315a2abfc04cdde8ca64eabea95258ba03038e2df8163547b9%3B3.0%3B1660889743066",
|
|
||||||
"h5st=20220819141543094%3B9822960375514815%3Bef79a%3Btk02w98e71c9418n0Di9DE6uofUf0U3nHI7WBpZb2x9iHhDFe0itIazoOxApzwbU2iGhyiEx7nYMTE2kFuknv%2BidCLXy%3Bfc5d0958b569af925f024823e1ec3093e1b4701cf280a30d71a5f6d729272771%3B3.0%3B1660889743094",
|
|
||||||
"h5st=20220819141543126%3B4730025262908210%3Bef79a%3Btk02wb3121c8618n0Di9DE6uofUfpvehtSwS%2FnTPL%2FAl6iavRJpjbVA1ODkfWiM0zrFx4oSOQUhX1NogMaA8h%2Fr%2Bgxfn%3Bb51519281b95c67fada0e3081f4056c11b6101e2e39d912abec124df8edc3c90%3B3.0%3B1660889743126",
|
|
||||||
"h5st=20220819141543162%3B6604592013786044%3Bef79a%3Btk02w9a2a1ba118n0Di9DE6uofUftoDVZ79EXmEt3lnlRysTWrTb9yo4hiM46ULSVf332%2FSvX5eD6h2NYWdjUPu6QRGz%3Bc5ba954237d5358edbd8ed5005398a95d2fbec24402581171cb5fb572dce9d92%3B3.0%3B1660889743162",
|
|
||||||
"h5st=20220819141543195%3B2308972552443272%3Bef79a%3Btk02wb5e71c6e18n0Di9DE6uofUf%2FyhzWvT4wjuIKTezqQ%2B2defZJNDbvR9f77tZMCgncwJMxSSZPn%2FIJjjd5Ei9m6Hr%3Bd58fb2ac89d2137bffd73c85e138db19499a5b1c81d9b903d668a8f9cb79e571%3B3.0%3B1660889743195",
|
|
||||||
"h5st=20220819141543231%3B1888743698451486%3Bef79a%3Btk02wab2c1c3a18n0Di9DE6uofUfujeO5H%2FZVgFMqUykKWvrTd2sJCpXhucOr4GTDBjKfY6i9Ps4W8uoaYf8jcY%2BHONg%3B15636070170963820fa746f724594863e0eb40d354b6d9c41f0b4c07a3f99c7d%3B3.0%3B1660889743231",
|
|
||||||
"h5st=20220819141543263%3B8597116309128256%3Bef79a%3Btk02wca821cd618n0Di9DE6uofUfcrst7ZuglAo2ddUy6rhVQDMwJhBDKGmPxbPS1jmlZupyi%2FNasVKrOUCvr2mT6A73%3B4bfd8d34481f0f91c96d8b5136811e1434b3abf462865004d032ef2c6e8fad72%3B3.0%3B1660889743263",
|
|
||||||
"h5st=20220819141543296%3B1881796558538384%3Bef79a%3Btk02w99a11bf818n0Di9DE6uofUfQNhICnci1QMrFJwriY1QGUUHd9bRjz0nVjj9iSPILQId43kMrYJUTwWNofbx1IDO%3B47f9e654aa76533379ee91d0c3638a457cbc513f43e118dae9af479862fdd289%3B3.0%3B1660889743296",
|
|
||||||
"h5st=20220819141543329%3B5124890263667524%3Bef79a%3Btk02w8ca81bab18n0Di9DE6uofUfzMH5lLr%2BOfLK%2BVkhHLdW5RDv1ydblDtzaSJDqR1B6JzJt3YNQIlCnG9fucLQ%2FSci%3B1c38cd2f66104219f40e08586f214e42a462deb1d96a4b63ba97896a337edff0%3B3.0%3B1660889743329",
|
|
||||||
"h5st=20220819141543366%3B0606336745092007%3Bef79a%3Btk02w74871b8018n0Di9DE6uofUf8i4Y0YaJK3eSfHg%2F%2BMXF5TS1pmgjwdJ%2F4lbhXs7iZnDSJvHmjBXNu6z0UjQf9oFa%3B52e90dfb1891188320d484825302c40f9d101aef7c9a668ec80b74d1dacc822b%3B3.0%3B1660889743366",
|
|
||||||
"h5st=20220819141543410%3B6597231028744785%3Bef79a%3Btk02w85581b5f18n0Di9DE6uofUfc%2Fn7KpUkre%2F%2FdKN4FDaldc8Dalv7pFeBFP46QykNjBql4UseS071luuPX7FP%2BKen%3B4701ed0bb667e41dc0505b4f9289a750c1122b8883bcfe7f6487f7eb1b5e6415%3B3.0%3B1660889743410",
|
|
||||||
"h5st=20220819141543446%3B8343457240093345%3Bef79a%3Btk02wc34e1cce18n0Di9DE6uofUf5q3vmxxUZtQPXnXL6va8c0xRBqcowf2Ivo2uSnTCnca7jfkKl9OOvQnWyZ4vI397%3B22903683cbdb5b2ece72082bbb35fd143d81d14772378674aafbc2125c561aca%3B3.0%3B1660889743446",
|
|
||||||
"h5st=20220819141543480%3B4868385081926079%3Bef79a%3Btk02w8bad1b6918n0Di9DE6uofUfI2T%2B4mbYLzx8CWQw8rvEybgHaXa4nYLjJ09fBPVfDhyYh260gaBCTeX%2FknCTxC7C%3B1cffdf72d9804a9c743397cb7c7f590c6a09139f2117d1a19151fd50338681b2%3B3.0%3B1660889743480",
|
|
||||||
"h5st=20220819141543514%3B5498206721338215%3Bef79a%3Btk02w7cb51b7b18n0Di9DE6uofUf22DCZo4zMR65zBIevWsMDVPZC9rwNplpmFX4EZ7XCQ42way72rxOKf0lsCDWkhh8%3B80ae76fdd231d16329b8545e000390682fec05b5530198e9c266dc3bcd3e015c%3B3.0%3B1660889743514",
|
|
||||||
"h5st=20220819141543544%3B4440661359783418%3Bef79a%3Btk02w94661bef18n0Di9DE6uofUf3tN7m465yQWbTwPMpP7rp8h%2BkhdfmUvh14o9cUssinC40Nru0YMGa2%2FwYkl2UlRX%3B7c449850477aff043e4228a2e45974a0503e04192f1bb50951aab6a85cf1f060%3B3.0%3B1660889743544",
|
|
||||||
"h5st=20220819141543575%3B8349657333875022%3Bef79a%3Btk02w75461b0b18n0Di9DE6uofUfiM45RDGBgGMA6JGtSRXNiWfoHXtFg6WJj7auGkv3F1kBd6kLotp6WIoAm1G0OT9c%3B01ca43b5ede76a8e62ea60c841bd43c8bdc7e166791282170245e51052ec10d5%3B3.0%3B1660889743575",
|
|
||||||
"h5st=20220819141543611%3B9438720681341395%3Bef79a%3Btk02w85ff1be718n0Di9DE6uofUf3MklUU1HlQ%2BYCGLtaSKTlWHflxSk6y7%2Bb1a77pl02uUVXcdRQtzhRQh0teU3QkWz%3Baae370c5de22036cdd916bdb913b9b9ca274badf138f6a85f44b167e1e9b7734%3B3.0%3B1660889743611",
|
|
||||||
"h5st=20220819141543651%3B2194326018782712%3Bef79a%3Btk02w680f1b0418n0Di9DE6uofUfngAY6Ho6NvLQJ5GARRHDYbkCk1Ul5EHMyWEM7d58g33fOV8Sx10HH4zjIyxllfli%3Bbf6c4df589e36fa2422d826d80781cd5ace5cdf79cf1a4a61cb644dd69eee128%3B3.0%3B1660889743651",
|
|
||||||
"h5st=20220819141543681%3B6445598073767355%3Bef79a%3Btk02wacdf1c9018n0Di9DE6uofUfaiHtaGODal9thsdUK9eh1J63VOY8DhyjpMUbrrsaLOYUxnVq%2BWPSuJbjF9dhb1aL%3Bfbaa8e00205b67305b766911f52492727df37ee79a67b07fb11df668a8f3b2ca%3B3.0%3B1660889743681",
|
|
||||||
"h5st=20220819141543708%3B3685890719332456%3Bef79a%3Btk02w85841c1c18n0Di9DE6uofUfW7NQizAbJP%2Fv8WO2R2ny1PYK7lTfQkZUosN9W8VI7YzD3zZfNkrayV6yapz1ZmfS%3Bf6777a6aa2b039d6237ef443dfae06ccd4901d6db89ba061fd3793d49510864b%3B3.0%3B1660889743708",
|
|
||||||
"h5st=20220819141543735%3B5010364800908074%3Bef79a%3Btk02wb06d1c8a18n0Di9DE6uofUfqCI4UWJf3pHqhMTJobgnHmmshlb0tcnNPeyXCKLubaUj716wf%2BCCJbKhbZFU8aye%3B3ad7396535c522e35a431951475baf49db40bf04b8d48dc5227b553536422235%3B3.0%3B1660889743735",
|
|
||||||
"h5st=20220819141543763%3B2981040750736360%3Bef79a%3Btk02wa9e31c4418n0Di9DE6uofUfcPIvoxu1rlRw%2Fs0K3r8y3POzt4tpO4le1VWJ2xfs8SZQ9GlLVKYa%2F7SqiNVCesWx%3B086b7102ed7a3375f06dfbc7fa93b554a14f4257f8829700a03c1c3b3073844f%3B3.0%3B1660889743763",
|
|
||||||
"h5st=20220819141543789%3B3838572376402199%3Bef79a%3Btk02w418e19ad18n0Di9DE6uofUfkXYKH5R5g12VFE630Vjo%2F8c60xG4BdgOG9XEQ5226jpXAzTTVgTVJIqQ6w2G3GrF%3Bfd61822a2d9440ebb43637559d18508d6fdf3f2644432a53993ec8851fbca14a%3B3.0%3B1660889743789",
|
|
||||||
"h5st=20220819141543816%3B0624719873030011%3Bef79a%3Btk02wa0e71bec18n0Di9DE6uofUfPXfKgw0V3QZPuV%2FbSbxapAjSwwYxrjB%2FOZXM4RA%2BHN6BdyO3sMduVIkeQY5zUXG1%3Bb5521b010332d248448ca879545e076c6138eccaa86d543b6ebb2b8739540485%3B3.0%3B1660889743816",
|
|
||||||
"h5st=20220819141543849%3B6530129028278080%3Bef79a%3Btk02wc1381d8d18n0Di9DE6uofUfCza3lCJk8Q6SobWoztPmzNjd2XQCdrrTc9mNbhvirxDrlMgdIKYJuSP2ZRvdwcNw%3B3e91167fb1317330ceed51a5388e77fcb7cb041208a7b8a4913666f8401ae358%3B3.0%3B1660889743849",
|
|
||||||
"h5st=20220819141543878%3B1935762150594014%3Bef79a%3Btk02w9b731bb418n0Di9DE6uofUfSWisxxdkuJ8982PZ3pX0WX6KQknW79R4iSZstalHtRXLRv9zmWLnU5KKET16Phl6%3B66bbcf2d40613910d409b59d0a76767134d6d5a1dffc1bbfb923016761557246%3B3.0%3B1660889743878",
|
|
||||||
"h5st=20220819141543909%3B0710617458062017%3Bef79a%3Btk02w73541b3a18n0Di9DE6uofUfngAY6Ho6NvLQJ5GARRHDYe%2FHv9CqEPNYkQsdg026bFaD7MjXAwyzCYeMlM2tOg0o%3B84e78dfe3fe1f4eaa83314691bf76f19c593c9302a8eb1317d0d769fbc9f7356%3B3.0%3B1660889743909",
|
|
||||||
"h5st=20220819141543940%3B0869325087018114%3Bef79a%3Btk02w67451a7218n0Di9DE6uofUfAkJNOJ6LPE8QSNKRNM4LTuiU7MkjeV1ExBQVw8zPpII9OJjwKgM055b289LcIUOX%3B94d93a822ec6cdc7a9a50d18952bb92e7b02506b65d0e3262b268a2b4a0da5d1%3B3.0%3B1660889743940",
|
|
||||||
"h5st=20220819141543968%3B5553190244552864%3Bef79a%3Btk02w93441bed18n0Di9DE6uofUfWiRi2P2woWtmA7R%2FhIF4RyP5kN3ek9gW9pXxbNXkWoOrZr2BQBMnwN5OzGLknHPG%3B64cdd562bb632af97660aa518f23d068efceea7c7600f7421257aa65a8f4509e%3B3.0%3B1660889743968",
|
|
||||||
"h5st=20220819141543998%3B9690968281730849%3Bef79a%3Btk02wc2cc1cb618nRyBYznsMclqUaH31VgkGAtEjUJ4A46oYXeRhdgjr9DDSnzG7dzVDbNtDxArPcOTFbDey2kD3t8xb%3B995d6d1849348c884dfb3f6f03fccb23879f91a638aed48b6bad9a16484d302c%3B3.0%3B1660889743998",
|
|
||||||
"h5st=20220819141544028%3B2181354671200964%3Bef79a%3Btk02wfeb81d0118nRyBYznsMclqUxeoVfWXhIdjsvCK4qn6t9VhldcaGvg4PyLKLvjm9VTk870wGbMsGan27sV65679b%3Bb26460cf285f590e1652eab8de1b5fa5b0afd9c30289a715d20f5682ad3ceaaf%3B3.0%3B1660889744028",
|
|
||||||
"h5st=20220819141544058%3B2343991652377406%3Bef79a%3Btk02we80e1e1f18nRyBYznsMclqU2nxm7YXWx%2Fe5161w1syuMxhiJNhUwM1fyhsT6%2BnVvkP0SwoyUsYtoKXu%2BzvpsXHf%3B1c0fe668c382f260a170582e017e9b4ec68d1b006859c9e96e96cd03020e1162%3B3.0%3B1660889744058",
|
|
||||||
"h5st=20220819141544083%3B2678314245907489%3Bef79a%3Btk02wc7531cba18nRyBYznsMclqUb2dgZ%2FmCHAybGUB4LuPhjRWKUDw%2BOWpnXfwEIEc9BSuQy54IqVITwIhDFeooZBPt%3B99b9856d6d3168dc6db3eca01dff2c3dfa0157612d834c764e0186bb419d6946%3B3.0%3B1660889744083",
|
|
||||||
"h5st=20220819141544107%3B0275255749853278%3Bef79a%3Btk02wf9fd1d9618nRyBYznsMclqUAf2JTu8FqDzdspx2hohOgqxCqpqAyFflUl0ixVFBOGlY1vop3Y5RAYjJJ36vwdWG%3B7d44e094e8b98f92737408e4c041cb13afbf9ede2196ee089725164e2415d09d%3B3.0%3B1660889744107",
|
|
||||||
"h5st=20220819141544135%3B2411110897623736%3Bef79a%3Btk02wdabb1d4918nRyBYznsMclqUxUkHkJL%2FPkPvK8gx8KX4KefmjkhtWuHAF0RW1q5L28tmqpO9UpGUouti80zietKd%3Bddc09c955b91c95fe052ef3691892d28aece01be0db0d977540cea10c6bb8cef%3B3.0%3B1660889744135",
|
|
||||||
"h5st=20220819141544166%3B0498181121751880%3Bef79a%3Btk02wb5ae1c2718nRyBYznsMclqU5aFUZThv7LV2bzHb5RgY496QH3UZnH8okZz4cYz7ZVUty%2F4Yk5%2BolYD2kiZzI4Ew%3B1486f0430600cbde784a28d443ce34e4642d618c674ba6cf7307b0d6381ecb2b%3B3.0%3B1660889744166",
|
|
||||||
"h5st=20220819141544204%3B1979274306196796%3Bef79a%3Btk02w07641d7918nRyBYznsMclqUgmyQvIlj2EtdkLulMEWzPKuaioojLRvjDm92PFekJ5Zg2RmLimg8u%2F6pRB0UuMAO%3Bcf44409b695a8c41eeb6d73c83225560b962a892242c72b890556f895807a914%3B3.0%3B1660889744204",
|
|
||||||
"h5st=20220819141544239%3B0937147656515710%3Bef79a%3Btk02wf0b81e0818nRyBYznsMclqUBlOgSdwNXXwCGItAkNaxorF3nKjQPPGmt46x7rP1Lsxu2VJstGpBRDwyzkuVtqOJ%3B837ccf37dc81351c3a824b9ff94ce0ff22415c6b4dfcab00a67d6581d6804246%3B3.0%3B1660889744239",
|
|
||||||
"h5st=20220819141544269%3B2037942650458262%3Bef79a%3Btk02we05e1cbf18nRyBYznsMclqUnJdrMwoAaBhWbC9KLaitJu7Zkx%2BCDVHfhxcBEHBOtcFCf3Ue4SVvWaaW0fT%2FLbaK%3Bf549dfdbf04af22c16a9508c1ec543721e26aaa10aa0a2f12b74e389dc3b2ff6%3B3.0%3B1660889744269",
|
|
||||||
"h5st=20220819141544301%3B8669610457264498%3Bef79a%3Btk02wbf8c1c3318nRyBYznsMclqU5frDPbqGK5y06DjHUSn1pSOAFFLMVXyMvu8uPMw2x2wr9NeCWlCBqDcebR%2F7d54q%3Bdb9a4537d7f479c30e5c8c8135e17d5e54da311aab4648f0ff272e00c5df9b35%3B3.0%3B1660889744301",
|
|
||||||
"h5st=20220819141544334%3B2311032567981318%3Bef79a%3Btk02we4d01cff18nRyBYznsMclqUcmtiP%2Fqi9GSIgLtbMmNqsGUOiT8BSEfRKaFQSZo6YiycVzDjDMF8wMGOgg6IATsT%3Bced49056ae8a07435d1789b99c35fdd5b02eb9c98ce0eb3efa24854a7f719310%3B3.0%3B1660889744334",
|
|
||||||
"h5st=20220819141544365%3B5871643395982993%3Bef79a%3Btk02wb7af1bf118nRyBYznsMclqUeHC8IH87O8Sny%2Bozytsz7Bw57AyGVmKM9TBYpzqL%2B699P%2BvGZhPjb2vU9vi21RFg%3Bc5954444919138caf850dd17ec7efe2f0d0cac6600c6118aa2fc9fd88a34676f%3B3.0%3B1660889744365",
|
|
||||||
"h5st=20220819141544398%3B4379431602345926%3Bef79a%3Btk02wf4f71d7b18nRyBYznsMclqUo9tu6hWUxSQZzKgoNfQ8mFEfilySYlG6Eox3OAHXvd2gUR6yaphIzy%2F1WR8su0aW%3B29087d49504598a8c48ce62a7f76195c7952c07dc032b7e07cba374c50cd6134%3B3.0%3B1660889744398",
|
|
||||||
"h5st=20220819141544432%3B2797584763180978%3Bef79a%3Btk02wc0491c2618nRyBYznsMclqUrBo7m4Izuw%2BcUGcDEKP0B%2BehXM%2FLqz9HYC2flSPkHtasChy8h8QW8Mc0QQmZ7Xy7%3B000fd610d2a02a98552e718b61817ee20b3ddb89213298b18a78831fe5f4c07c%3B3.0%3B1660889744432",
|
|
||||||
"h5st=20220819141544462%3B3525979118045929%3Bef79a%3Btk02wecf71cfc18nRyBYznsMclqU4pknPLzx4hwq7QcI%2FPpnp1%2FqqFsnAZG%2BwuNphGveMOVzYLn4j888k%2BgPHA6xIf2e%3Bd86236001b70efdffa572aa9314dee3290f66f3e2a2c72ce80f78fba0036c4a5%3B3.0%3B1660889744462",
|
|
||||||
"h5st=20220819141544501%3B5128619373747112%3Bef79a%3Btk02we3da1dbd18nRyBYznsMclqUYJnMECnvsoMMs%2BhgHTMELXTBqDZQCNrvtbcp0iQJURI8nGAcrj2clarreos3vNkm%3B5eabfc724a1051ae3273a0837698c5e9c89655590ac77d636c01e22bfb199fd5%3B3.0%3B1660889744501",
|
|
||||||
"h5st=20220819141544541%3B0684912567939735%3Bef79a%3Btk02wed1f1d6018nRyBYznsMclqUekoEm0bDMMPJedrP%2ByJWdbFApthdvTxAELuIsuThoHYc1QEYSHxjqNW0s87KHuz5%3B46710da09875f00902cba84581b8056dd7666780796c664e82b36895db1f594e%3B3.0%3B1660889744541",
|
|
||||||
"h5st=20220819141544573%3B7536412094835346%3Bef79a%3Btk02wbbf41c2218nRyBYznsMclqULpiCixp2LUlGCBI5X%2FCND%2FD0FBhpcqvAKgNacacMGWvM%2FpkwvRN5YZBCDkMn6Ko%2F%3B969a01756d98bd6ecdc91419d00bb5260ed5faeefc68b69ba29dd33194591bb5%3B3.0%3B1660889744573",
|
|
||||||
"h5st=20220819141544611%3B3185020317462189%3Bef79a%3Btk02we8a71cf518nRyBYznsMclqUcDJLzrlUv3zPw7mtpNeAbC0P8e%2FoAjo0Lq%2FstesgTnUh9cZi2ZC71%2FqAUhj2vz6A%3Bf5acbd3cb5e54595f669cf82edc0b0b386f4a87a00dabf4e589ec67f84bc3317%3B3.0%3B1660889744611",
|
|
||||||
"h5st=20220819141544648%3B0927555488833810%3Bef79a%3Btk02wc27c1b7c18nRyBYznsMclqUyjChFnOqQOLL5D%2BmmYxaKcKX4P4oqEHWi4uU4y5M8%2BcOoGGMM2FmI%2Be%2BmE3AXrD3%3B0f24b8feff095c3c8b613ba49fb00dfeabcad6306fe6a49ef0b602c02e56f85c%3B3.0%3B1660889744648",
|
|
||||||
"h5st=20220819141544683%3B7405427759682419%3Bef79a%3Btk02wc2141c5d18nRyBYznsMclqU6zf2dZz1PbfMBmF%2BEXoR0IvXyBt5wB5ta8V%2B6NMsZiJD9w%2FlGWgpmOwCVwaM4sJ8%3Bceff3e21a274b8b4a8085b2f05dab68fad9cb682d630f7ea2519ce0d78f4d2a4%3B3.0%3B1660889744683",
|
|
||||||
"h5st=20220819141544716%3B6625470980936112%3Bef79a%3Btk02wdaf41d1b18nRyBYznsMclqUrjcba7ayVgEVz%2BGNA0s6cGLZwcC66op0SZYLapNN0y3qeSgvvQu6pchkCHWF3Vbu%3Bcb5d7fbd5e25bed8c404d96e01a30944c0875dedbd5d5872fc1cfd49a392831e%3B3.0%3B1660889744716",
|
|
||||||
"h5st=20220819141544748%3B9583469272529823%3Bef79a%3Btk02wa8bc1b5c18nRyBYznsMclqU92Tr1Fu0xVq2ynHHVrqOev3F7Y1ZVQL6V4Jd894oLO6nO%2FD1lFyv05EIZe6VnFzI%3B13024d347b2aa3987087bf5ab0f3f42a38d28bc7dbd0d514b3623a33bfedfe79%3B3.0%3B1660889744748",
|
|
||||||
"h5st=20220819141544780%3B7885430270779623%3Bef79a%3Btk02wc4ad1c4618nRyBYznsMclqUe%2B97xvpJauSH5eFdT7oSxCqwco6X8W4d%2FcAYd5o68lr%2B1K53v7xg1BswwAtGFETu%3Bba41100abbef114f7cde064ccd310f17e3da9c8dbebbeda39172a7768c138fb6%3B3.0%3B1660889744780",
|
|
||||||
"h5st=20220819141544810%3B3805627399422961%3Bef79a%3Btk02we53c1db318nRyBYznsMclqUCMihW%2Bfpy75NSxYlnndWHsG0ANFNyGs1isZhzoDyX%2BOThx9bPGTOWvLZkzpOFnXr%3Bf9f08ca6742283de2b3252474c874328dc3e7b928471c55cb5f82d3cf91e60f7%3B3.0%3B1660889744810",
|
|
||||||
"h5st=20220819141544845%3B6888947013468297%3Bef79a%3Btk02w9e4f1b2218nRyBYznsMclqU5P5D3aIWk501%2FfXrF0DytsTtsQLZ0qVeT3EteSsN97%2BlV84e8ptMm5E4e7Ky83T%2B%3B6a7da04d57849345aac40a2d6df48d4203cd35d3c11d8ba333f8807e29aec8ab%3B3.0%3B1660889744845",
|
|
||||||
"h5st=20220819141544879%3B5758043872758554%3Bef79a%3Btk02w91a91b6b18nRyBYznsMclqUok82U40T7eCK2v%2F%2Br3duKIfTECv%2F2EQWnaTDJMLvJPE%2FINiYq49bcuD36kunMRQy%3Be12c03be48fe0e96b58c6c559f3776f77f2fb92895f18115f5420411c3b7adf4%3B3.0%3B1660889744879",
|
|
||||||
"h5st=20220819141544912%3B2029148387582073%3Bef79a%3Btk02wd9051ccf18nRyBYznsMclqUQX0Y88m2YCYqxgXb5wHatZuzTpvBTCjxhIZ6%2FpkGG%2BoqIPkXlQXB2H5DaZozVPL5%3B124aa3354395143b41f569f2d0079871dc1e23824e52b93fd7ab653464e5cd1b%3B3.0%3B1660889744912",
|
|
||||||
"h5st=20220819141544943%3B0266598623666624%3Bef79a%3Btk02wb9761c1618nRyBYznsMclqUqDDSGU8TBlDGaXTTYf4M3vehSVd7VkFy4TtTPnj96%2FXJRfzJXcH1b%2FGtTmHQEo6c%3Bf9a0f2c896d3c5db50c070c0fcbf27762f9112e24b1d3a7d855b79daba91f3d1%3B3.0%3B1660889744943",
|
|
||||||
"h5st=20220819141544970%3B2797934528065379%3Bef79a%3Btk02wda4a1d4e18nRyBYznsMclqUShw%2BMiFijJNTR05nJNjYdfYZTrmaLLlgQlfBOxER5M49GTGnnSRYxzJfZfahy1oU%3B1fef2f4fd04f3ade70dc47f66b6bdc8649b537d8ae8af6628638234964b95f2b%3B3.0%3B1660889744970",
|
|
||||||
"h5st=20220819141545000%3B8194360276526321%3Bef79a%3Btk02wa6111ba118nJXpi0Akz0qrzqjHL7YD6tXKDIVRGoHBNbTayncF%2FOCUwMYrBZrACg0DGUfK%2B%2FeTYO%2BqTUseYHLe0%3Beb4ea0b27d3e21b7191efa434c39b9fe7383efcec50238733194c6b592bd61f3%3B3.0%3B1660889745000",
|
|
||||||
"h5st=20220819141545030%3B0266187305023064%3Bef79a%3Btk02waa591c7318nJXpi0Akz0qrzHfjG53%2FyAuXQBV1oLjGOn9b6BvgulQ7RT5gRGfbaUj45r1peUQp6hcvwCuZikJ0d%3Bbb0b160f910e284ec37ff4a46c41e3e6bc82c6e5f278e6e4260b4d2177e330b8%3B3.0%3B1660889745030",
|
|
||||||
"h5st=20220819141545061%3B8755058531985288%3Bef79a%3Btk02w912b1b7618nJXpi0Akz0qrz%2Fc7yn5mdk%2Bk19B8uD1z5FaFFvoICJ4Q4Hx%2BJSrfFS02Je7xlz5aubDiNmeOm5K5c%3B79704c29c68b47c5a96f1975475d4c8c707ba3ad2c467832f183ec672089e16d%3B3.0%3B1660889745061",
|
|
||||||
"h5st=20220819141545091%3B2428612275936249%3Bef79a%3Btk02wf23f1d9218nJXpi0Akz0qrzZvrzbvtPDtUrY2ZpKbKlkOQ6KvhmL78OOAmCnQYjzpqoPgih2%2BP8yaRNVj8WEOzc%3B7915139a2436d01f2a6e45b2f2c508fe49fcfbdee249593ce8f49e23c72d370f%3B3.0%3B1660889745091",
|
|
||||||
"h5st=20220819141545121%3B5973528162554056%3Bef79a%3Btk02w9de11ba218nJXpi0Akz0qrzevsjAJi%2Bx0KJ1YgZ%2B%2BY5V5C%2F12enDivtCspuV%2BYoVfX1tKDFQZ74TWgr5jeFb9Eq%3B6c2002f8b61225e1540f7919a412810b2c23586712e3a96cb35365fd52689177%3B3.0%3B1660889745121",
|
|
||||||
"h5st=20220819141545152%3B8037858746918038%3Bef79a%3Btk02w94061ba718nJXpi0Akz0qrz%2BW5Q7Tu%2F3laSRYJGTe4GSpbtJ4ENDgom7vsEzi%2FH0MsRLpF%2FRH7Mut58kwkXA8Uu%3Bee48811d7744054ec2d85dda65b9f7e84557d822ec4404d4bc3346047f7e6478%3B3.0%3B1660889745152",
|
|
||||||
"h5st=20220819141545187%3B1796824384501851%3Bef79a%3Btk02wccf61cf518nJXpi0Akz0qrzJcHpGihzm68pHwXR8zZXIRJCg8YyxzpiMJ%2Fv1NPLOBmN9Ak4%2BUpkkKqmZLOTlwxE%3B2ec3fc3b2bc25cac1e05c6ce1c41dbbe3e1f2ca9338ca66409e9aad9f6352115%3B3.0%3B1660889745187",
|
|
||||||
"h5st=20220819141545218%3B0593146144028781%3Bef79a%3Btk02w91151b2218nJXpi0Akz0qrz6nbCn3bW6FF%2FZ8NoGQ3DXXLCIwquBWb2EqVY44s%2FhrQkbbub5F%2FFt6%2FnRE2jY08e%3B926d3dea89b537a8579b7c9663e8e7a7428e1241cb3e433ed189d9a034365911%3B3.0%3B1660889745218",
|
|
||||||
"h5st=20220819141545252%3B9988236590028185%3Bef79a%3Btk02w90041ba518nJXpi0Akz0qrzP4Y6Dkr0D4rCEePZG0WYmUWat%2BVGeby05ESO0%2F9zC6ixtEuDz1n8uROnIMbUKTtV%3B28afa1079846b2959271c16c574993d3c446d353ef426eea6c0be68c0be2771c%3B3.0%3B1660889745252",
|
|
||||||
"h5st=20220819141545284%3B6793112023523380%3Bef79a%3Btk02wd3221d0218nJXpi0Akz0qrzEEcCucl8uOX0aRZlfhgIQuls3pV5TsSEKLsXx%2B1tyhy3mkA7GxSDFjbgFcl4nhM1%3B1f0a517698291fa46b71f1727112132dcf5272f050b4772d978631ec0a0d4824%3B3.0%3B1660889745284",
|
|
||||||
"h5st=20220819141545320%3B5023165878452893%3Bef79a%3Btk02wfb6f1e5c18nJXpi0Akz0qrzcXmxrs0%2BsaVxjhps1gmpNCcKIDCyr1YwCFvd8oWzoYacIyxt4GgXxBwt2DYqVasi%3B01a22daab21e10868cfb44a24dc17e7769201c011f5e3912e10a99caede649ab%3B3.0%3B1660889745320",
|
|
||||||
"h5st=20220819141545354%3B5870287203691059%3Bef79a%3Btk02we5e41d6518nJXpi0Akz0qrzitLlCQCDHeUzQoiXm7zgxTrXoN9TCs8%2BKXGWPytvtHoWXHtx8pprRqoMUqLB1S27%3B7fad00f53b3dd14c5bcc956e64cb2ecf129e1c4a38b4a51822cec53d969f151b%3B3.0%3B1660889745354",
|
|
||||||
"h5st=20220819141545387%3B0412567229525350%3Bef79a%3Btk02we8a31d8c18nJXpi0Akz0qrz0Cz%2FFAuxmzvkbixNRBPYxgNcrqNh1TvDVahtTR0OdFQh3gMzyPiCTbbxyMLhHM3M%3Ba7d3b04dc1e51edd5e5a4de649f9d066f7764edbc3226b330e0717a9b2c809e4%3B3.0%3B1660889745387",
|
|
||||||
"h5st=20220819141545423%3B5598672752275432%3Bef79a%3Btk02wd0c41d1018nJXpi0Akz0qrzoxOaVHlKHYz6vs80YRkZvZV9n7KkPdwl633iTUPVrjQXE9g3vOUqVEiuxGPsj6Yc%3Bf01bb7bf287c2dc10aafffe44d5f431c62063abffaafea469ece19041276cdb0%3B3.0%3B1660889745423",
|
|
||||||
"h5st=20220819141545455%3B2035445678120668%3Bef79a%3Btk02wb8051c3718nJXpi0Akz0qrz3OOVA0Kvmg3PiKvFdHtG6xPCmlFySLhbxT5xEBjl0lCkHgk6s6bzl378M9wcEXK5%3B25a3b0ea4212e4a50346caaa7a11764cafdeab5cca7b5231bcf3e97157abd025%3B3.0%3B1660889745455",
|
|
||||||
"h5st=20220819141545486%3B1854622123707022%3Bef79a%3Btk02w9a241b3c18nJXpi0Akz0qrzQBJ%2FOa9S%2FZhQRf0d3mbYFFzQaMv6TTevDIkk7HjdN2amOzHBgLed80F36%2FV3%2F9ov%3B31d34e3044318b5c268eed72e9be84fefa0681f442db7aa3f2866f976d0964fa%3B3.0%3B1660889745486",
|
|
||||||
"h5st=20220819141545515%3B6099378664069604%3Bef79a%3Btk02wbc441ca618nJXpi0Akz0qrzpiRw0ENlKN0vVUcZWTjhCL6SZ0y0nOmyFV1s%2FIqMg4r1n5Id1ZWwyytQ07ZxzdYQ%3B0362ac233618ef2cbabe36bcd93dd990eb60f00b6b9cb8d94b4204bab3fb8c95%3B3.0%3B1660889745515",
|
|
||||||
"h5st=20220819141545548%3B7495280963596554%3Bef79a%3Btk02wb72d1c4018nJXpi0Akz0qrzWEssJJ6kisAexl%2BVDO4vm67fHxmHFU9T246em9q9PkJFvGVhqUEKmlHmVWx3K4ga%3Bb3fced5d9385693a0cce3cfe60e485b241128fd58a0a5a03be4c0c44b803a26d%3B3.0%3B1660889745548",
|
|
||||||
"h5st=20220819141545582%3B2125130649748745%3Bef79a%3Btk02wad281c5618nJXpi0Akz0qrz0J098iwzor1IZIaMHCg%2BtTjlZN5EixcuHzItEJ0THC4L0uhmtzIX%2F4xSbc6monVB%3Bb0b22e0109671b76bd0a294712ce13a0584b03068a18233c75f829bb5f86f3d9%3B3.0%3B1660889745582",
|
|
||||||
"h5st=20220819141545617%3B3745932263399961%3Bef79a%3Btk02w78111a8018nJXpi0Akz0qrzzA07GhqUUGY%2BJ%2F%2FvC9o6If4Cmk70V0CZvnZ2Ti7X3%2FTt3CUIYNUeHMFZx%2B1o03pn%3Bc4d757b468b4f1414460e1b65b0f4877af627643e4f744920a0ef02aa3a5eb5f%3B3.0%3B1660889745617",
|
|
||||||
"h5st=20220819141545652%3B0909519257430159%3Bef79a%3Btk02wa1091bac18nJXpi0Akz0qrzpeNren%2B4qc52OWCCPp22wiVEPURU4PdQUeOEBTWs021aAByDSPSFxtJbaX0oNMZi%3B0d028227011a7d3718f435993381421468ee5ae18f8255cf4024627006782431%3B3.0%3B1660889745652",
|
|
||||||
"h5st=20220819141545687%3B1710777628410198%3Bef79a%3Btk02w9ed31b6e18nJXpi0Akz0qrzm2RlB4Ig3yNYzkGrIQ2M2PJJmLO3dyU1vH8VudZ2tDLTg3r03Hm%2FR62NrNVw7wi7%3B3a447a2032a509bd172d650d84e7b8bd710c4f5505c073540cf56353287c7b6c%3B3.0%3B1660889745687",
|
|
||||||
"h5st=20220819141545728%3B8196748911822553%3Bef79a%3Btk02w91301b3e18nJXpi0Akz0qrzTURwB6l2QGK%2B%2FKTSSZDEVorQ0tEUFf4DVMz6zF5lpl3zS0uGdjDG3nNbARDwO7I6%3Bac235524a7acc72de1a9b59039d917806de68799f2dca3b38acf19dd87c53fbe%3B3.0%3B1660889745728",
|
|
||||||
"h5st=20220819141545759%3B7774269804255576%3Bef79a%3Btk02wd4841d1618nJXpi0Akz0qrz7XlsVGzDZUt4jbOBI0HQvzp5TyCFywJehRvyeqHdy47vp9XmD4UVB89l6LtrVw9l%3Bd55fb611dbf312f0b489180b3f54100dd5c7b0c25e2bbcd615076eead2fbb130%3B3.0%3B1660889745759",
|
|
||||||
"h5st=20220819141545789%3B5205084716865256%3Bef79a%3Btk02wb2691c0e18nJXpi0Akz0qrz5mo%2FtDp%2BaNChdThyx11rpHgCHEWlLra7%2FMiD2fAA8RoEQvYXhDAU7dJKr2hQdtbD%3B35437b1d5aacfe56356c5079de1cddac2db21368421229ee2aacc1518f6bf3ac%3B3.0%3B1660889745789",
|
|
||||||
"h5st=20220819141545824%3B4830221625275961%3Bef79a%3Btk02wbb691c8218nJXpi0Akz0qrzn%2BgyzGlugYE5Kj7C6o2LBjWnkjHkG2pM94GFNuNwv%2B2q8Dd0lDRgkgOwLzqy9eHQ%3Ba94cfee70bce597849cc7fd5350ce7d46941b409bd3b464595c4de39484046f5%3B3.0%3B1660889745824",
|
|
||||||
"h5st=20220819141545861%3B9017850024552462%3Bef79a%3Btk02we54a1ccc18nJXpi0Akz0qrzIcuNPnzlIrvgbsc7FMs%2BsZdii9oZHck5s7EWKqzoX496VkH91g1LwwAmBvo1X%2BGH%3B4cb4455ae9ce346432d5beec4c157c6f71f37d54c8d71eab500d7a3c726e09d3%3B3.0%3B1660889745861",
|
|
||||||
"h5st=20220819141545892%3B1750331324213961%3Bef79a%3Btk02wa4961c1218nJXpi0Akz0qrz8XhuVSSJmcE%2B0r%2B9X5wNcQXRG7Wnqg0tb5yT1vD6Fe9h7WeekTOHyd97ii25wvai%3B39c5285f25d657ee404937e14ea31ad23f7fb3faf891db6b590fe8b8e8077f8a%3B3.0%3B1660889745892",
|
|
||||||
"h5st=20220819141545921%3B0657611594236089%3Bef79a%3Btk02wab7b1bf618nJXpi0Akz0qrzyjXtUaA%2BL5SAjSn%2BDyyc20G4CPRYzkJ064sNA%2FOckLwkWDXzhkpxjLeJ8aEP%2FiL4%3B938c9432372161cba2094b4f7509cc635a0999f78a0ed3137afe0eb45ec9100a%3B3.0%3B1660889745921",
|
|
||||||
"h5st=20220819141545953%3B6292927725304949%3Bef79a%3Btk02wc82f1c6418nJXpi0Akz0qrzlvyGaGwH6zjh80ulDh1vvh0%2BOFi3qb19ceRGZthh7%2BN5woU%2F%2BhrogB%2FdE3zTeDxC%3B4e8bb4acda0066e363cd6ab4a9c909b3923ef47160668142eee260fc5f051b6c%3B3.0%3B1660889745953",
|
|
||||||
"h5st=20220819141545991%3B1218693400053033%3Bef79a%3Btk02wad541c6518nAndCrjbSO0Weaoo%2FLoFLhsON89BGh9VwXGgGGzHgq%2BhDjtDrgTBFJwVuWEM5CKJEwJrHVYl9hfes%3Bfde380d25904716be9aaae6e9b86d1a5e0ff267366fa56fcd9b23d896829d3e5%3B3.0%3B1660889745991",
|
|
||||||
"h5st=20220819141546021%3B1950472366112841%3Bef79a%3Btk02w896c1bc218nAndCrjbSO0WezN1Sh9ZGYzPJ7V4BGG9YCdl%2BWNep2M%2F20zV6NwxuHlhNWKZDUWbnUMkrvW2mgmKB%3B9a9df5e7a7ebe594bf83acf12fb4fa020f182ab51a65886610598f21fcc9d19b%3B3.0%3B1660889746021",
|
|
||||||
"h5st=20220819141546062%3B4045457812343406%3Bef79a%3Btk02wad8b1c4c18nAndCrjbSO0WeSgFa%2FnKNP0%2Br0Oj9jlTSAXJgcKqWLvkixzHvGgIHowTwQgIF5y1xKP1VZefDK%2FHf%3B9dd93fe40ee3a3cd000908315bbd1f3aa3cb9932007f18f99ed9365c91b8861c%3B3.0%3B1660889746062",
|
|
||||||
"h5st=20220819141546099%3B7518224576302289%3Bef79a%3Btk02wc01b1c2d18nAndCrjbSO0WeSrhu66N86eU2xIopEdyz9ygvKqxVh0cXf8P%2BMcyPdYJza1LjO7WK3fZVMbI0y8I%2F%3B0a1a8fe4582fb356c09a88dbd2a095b70a43cd043e8fb8ae1a0ac6712393853f%3B3.0%3B1660889746099",
|
|
||||||
"h5st=20220819141546133%3B6360136387265138%3Bef79a%3Btk02w9d3e1c3218nAndCrjbSO0WeYGb13902fOwqHI0qjx3BH2XEkeSwbztYaZ9tDgu0NbRpRnreXWUx49hEfI9nwOU7%3B5d6966db6d25d0035fb5450c047c14dd7754c738d8673bd2f8c892bd07eb0c3c%3B3.0%3B1660889746133",
|
|
||||||
"h5st=20220819141546162%3B0334436918740637%3Bef79a%3Btk02wa9de1c0318nAndCrjbSO0We02%2Byt4N%2FguJueezrfYRPPGXWmcc%2B9EEWzdOBdUvdtn65mUT7Lq7eI6%2FMCAtCn9wm%3B39316b891dbddfe3b1a577e3995b13197f56da3a8f07adeacbc94e2dd530d926%3B3.0%3B1660889746162",
|
|
||||||
"h5st=20220819141546193%3B2577578695310046%3Bef79a%3Btk02wb8c21bcd18nAndCrjbSO0WewxN6Umn79ovZNR1o51z3cluetO3rS0MgQjFVrdy5rETzVRx%2BCSOE9%2BOGCAqt%2BCGA%3B8e40bce27284f893e071165d36c0c0e4f79f82496d90a582b2c95493dede9918%3B3.0%3B1660889746193",
|
|
||||||
"h5st=20220819141546225%3B4578653914562056%3Bef79a%3Btk02wacd81c5618nAndCrjbSO0Wes%2B4yjy2BTF3NukqRQXD0pVRcLIQJzkNF74ywDMqjxlVBZWanb4pb4zT8U%2B3mHkgd%3Bd1b6cbbcab3a693e6e6aa60cf1be44c5b054000b039f8315a5ad5a459f21deb8%3B3.0%3B1660889746225",
|
|
||||||
"h5st=20220819141546256%3B4135920734366534%3Bef79a%3Btk02wc51b1c6118nAndCrjbSO0WeZmzTgpjoy8cVI0mcJ%2Bsw8zSHcM%2B24v5yqQksqDIO5fNBSP%2FO0jttK9DIbwNwDNUU%3Bc353b7475bff8b42e6f323d0e55b164d7ba1f5450ff32879c1283e4366a2a862%3B3.0%3B1660889746256",
|
|
||||||
"h5st=20220819141546291%3B9306305782643157%3Bef79a%3Btk02we1d11d8518nAndCrjbSO0WeXHnykT%2Fj%2BfGexsgr4VeqRlZoqdGRxmAodF3AwMp4y7gzmq0ZGgqj7om3hkor4dD%2B%3B87c04b248856a0500a237ec9ff149d598b9ce0ac6ebf1bc932081f1295ce5494%3B3.0%3B1660889746291",
|
|
||||||
"h5st=20220819141546325%3B9598324017640493%3Bef79a%3Btk02w9a861c1f18nAndCrjbSO0We8rstMG8bO5Tuw9zeBO%2B0M4ZFGf0GsFaaV1nAuCeE7P%2Bvv0zk2nViizq2xXoHnfDW%3Ba013263ee0d1ee16b3f20c9d7c8dff1ded3c21c2f81aef440a285f2e788b6286%3B3.0%3B1660889746325",
|
|
||||||
"h5st=20220819141546360%3B5792296160389249%3Bef79a%3Btk02w8d231b3d18nAndCrjbSO0Wet1xNCz80lTV92%2BABTFySZLYxtc4To3k%2F3WiH6itifF%2Bji%2FeDENwjMJU6Mi%2FX7rGX%3Be59829905c1130d96571f4c3def75292c6065b560680c90645aa04fe199831c3%3B3.0%3B1660889746360",
|
|
||||||
"h5st=20220819141546393%3B4367133532897549%3Bef79a%3Btk02w887d1af518nAndCrjbSO0WeTE005OFml5rpaOwIjDrX%2FMDyFT2K7j48oblKG%2FFvtRiUt48ZOHm9K0BmPUvI%2Ba1K%3B87e7560c0f6c677895525fae44654df1b4a1523d2386a5c17684c988ff4cbc6b%3B3.0%3B1660889746393",
|
|
||||||
"h5st=20220819141546422%3B8744977301529988%3Bef79a%3Btk02wc2701c4618nAndCrjbSO0We%2Bg3xoluNNWdtybAYYyBY87fB1SVXxidOEHggamyALerGf3BfQooEcBf010C3YWwB%3Bf5a6650c3b5675069434b0052d7f1e3e26071ece2a87c2a24c866899db09836f%3B3.0%3B1660889746422",
|
|
||||||
"h5st=20220819141546453%3B0555901998429079%3Bef79a%3Btk02wb3771c4918nAndCrjbSO0WeW%2F33HVlpeoPJphO8yAv%2BuuRZlkJFWs6xeNOWHMXdMC7jJMyvNKd%2BzlwNoQZg8L%2B0%3B92aa7155a8cf3d2e5e656250549e7819ebdce96928bd45e747d32c55816e3c0e%3B3.0%3B1660889746453",
|
|
||||||
"h5st=20220819141546486%3B6266587710936338%3Bef79a%3Btk02wb7621c4f18nAndCrjbSO0WeUsPsKsi2GFGXCrVReVF1oLRTWL%2BtuY5hrc2iYyZY1mbZYrqeUdtc%2Fb87OMDx5%2BrF%3B9d622c7c6c16917aa8e0e3ca40a5f44b39d4a9ac0aaf89c0490218d15d4e60b2%3B3.0%3B1660889746486",
|
|
||||||
"h5st=20220819141546521%3B1437777952567550%3Bef79a%3Btk02w74f41aa518nAndCrjbSO0Wej5KBN3oA73Jj1aLnFr5VSWfG4RqH1Q4iEMesWRIvRkR0h6S8mJ18qZ%2BMB3wgLTTP%3Bd380e0f78e02b86d2d25f5774b989fb225a11369c6883c7112920d47ede00951%3B3.0%3B1660889746521",
|
|
||||||
"h5st=20220819141546557%3B0361948774537352%3Bef79a%3Btk02waed71bd018nAndCrjbSO0WebiW9klb9%2BqNctYb3vIU7mxsScr9JBfDB9MXF5gnhOLw24EUEgla%2Fi%2BEZK0rM5aod%3Ba9b1dadf7d6cadf6edf1551c505b62427459956e279b88ac5e43ef9e7513f117%3B3.0%3B1660889746557",
|
|
||||||
"h5st=20220819141546587%3B9960049785144197%3Bef79a%3Btk02wc51e1c9918nAndCrjbSO0WecgSwlQ1Hwti%2Bnt1NALIinjwMFuLuF18TjerWUM75X%2BdTcjZXkptpEn7xSpB2K53x%3Bfa9c876786417c65100fa26ceb3350b5eb7cd2cf5a674f067a25f199efb4698b%3B3.0%3B1660889746587",
|
|
||||||
"h5st=20220819141546619%3B5970824003236220%3Bef79a%3Btk02wcbb51d3f18nAndCrjbSO0WeyRu3CNwzmy16Hrb0TOmbhOfqQIyLpUQCnJc28Fk0xdXbuU2nzTqVi%2B8hKrXjlwqE%3Bf0362073dc93f3933e714276b08a3b66c46dd023cedfaa318ae9267ae954c68a%3B3.0%3B1660889746619",
|
|
||||||
"h5st=20220819141546653%3B0167763249017906%3Bef79a%3Btk02w9c681c3e18nAndCrjbSO0WeuTW80AwWwcP42zB5V87qU65VeNd%2FsWOM3yGtgoBlgEYxalagFtWVDhMRayIaIi%2Bl%3Be9dbcca2177ee21f4788d1e881a717c7f40ce16f702215faadf869a3502a78cf%3B3.0%3B1660889746653",
|
|
||||||
"h5st=20220819141546687%3B9185804268897096%3Bef79a%3Btk02wc1741c1218nAndCrjbSO0WeTjWZDHzc0GpOx5HAQkJleJrzinlpoY1LPtOpURl71VafQ1ONYybs297odG9N6X6%2F%3B91911d182b33ec7450d543b99991908ca933897634bf198233022e37dbf35b5a%3B3.0%3B1660889746687",
|
|
||||||
"h5st=20220819141546722%3B9699151724589567%3Bef79a%3Btk02we1a31d0318nAndCrjbSO0WeBRLjTyopwncPoun5Ihl7i37EtzrrEMmvtaWpkFociFf9%2B%2FA8lQmw%2B6x%2BIMSgm7oA%3B5f0c5d0f3e7d7e22371ca6b674a98649628d5ec39dcfc2c410b5a2f0e18f5d07%3B3.0%3B1660889746722",
|
|
||||||
"h5st=20220819141546761%3B0149735264343176%3Bef79a%3Btk02w98e51b9f18nAndCrjbSO0WeJ0m6JyXn0JBUt3ISK0imrqVwMKDaGanuT6r1XFL85VzzH%2BnL0OKWhmt10UeHTYjK%3B6bf81056226fd15f86336f3b2d1957392770bf269835b3d997e4b9ffee56d1fb%3B3.0%3B1660889746761",
|
|
||||||
"h5st=20220819141546794%3B4043604689140528%3Bef79a%3Btk02wc4611d0f18nAndCrjbSO0WeRnfc4SOz1E58hLxtYXMttXEQmFu8yRyqD3dRgqhx7kO9pN8RzxZQMH2lym6tJo4t%3B87de01ffba517a952553dad800cb351494be1edd4f12388c68de29e1d3a4e878%3B3.0%3B1660889746794",
|
|
||||||
"h5st=20220819141546825%3B2908858493768049%3Bef79a%3Btk02w957a1c4518nAndCrjbSO0Wea1TxKYYCA%2BMKS0D%2BvFc%2FX7cLvRuTQYVUhMxj%2FMvGfnppy5wx0U9dnsaP%2FwXAb1zl%3B4e0fe4b0db3fdfc6dad90eb5c9e7c3d4186865af1364698aabe64223b835f67f%3B3.0%3B1660889746825",
|
|
||||||
"h5st=20220819141546858%3B9703285641964013%3Bef79a%3Btk02wb05d1c5618nAndCrjbSO0WeHhqD%2BLRr0vTFypp3tWEHmjY1Dy7xapgD2X8Bz%2BkHBFMptWFWvZJCuk%2F6sKrNcWSa%3Bab0137a720156fda4eaf085263fc8fc32910fefc53410f43514435a04fbdacec%3B3.0%3B1660889746858",
|
|
||||||
"h5st=20220819141546890%3B3993972508690615%3Bef79a%3Btk02w74301af718nAndCrjbSO0WecJi%2BY3DU0Ivo1Cp%2B%2B9VKwJ%2BV30N4KrRIoGezTt36kO2qjsdAacqnX3ESOxEcg6G0%3Bd856b0aec709d410344166a0a6d01edadaa362af8628600c4e5985475f0618f7%3B3.0%3B1660889746890",
|
|
||||||
"h5st=20220819141546928%3B6523674182890925%3Bef79a%3Btk02w7f1e1b3818nAndCrjbSO0We%2FJY4OHQNoL1vDPehA6U12P8hW9yjc%2BeYEaFa7tqvPmjMq2dY%2BC09XKbvWhq5h%2F7q%3Bf28392105942af81b749a41565c45ddf2a9348761baad6c9256180bb4862f78b%3B3.0%3B1660889746928",
|
|
||||||
"h5st=20220819141546968%3B5819300430926460%3Bef79a%3Btk02wbf161cfc18nAndCrjbSO0WeYf%2BINIQBQjdxZP5FelvTZgxOUQcZzn8lIeGLe3eq2dgArgQfYu9LetlWt0wgQ7RW%3B3157c035e6e143451ee1eb8f17284b7b800c8df9018ab9b2092f965ff13b127c%3B3.0%3B1660889746968",
|
|
||||||
"h5st=20220819141547002%3B4426918037446946%3Bef79a%3Btk02w78f91bdd18nWhvrSx2aC6so6A%2F92DZ20c7kqxBZCg%2F5YD6%2FBVlmAi2Bk7W7HXvoXdw%2FVygvf%2FwZLVjKgmdIZpus%3B4b7f84ed08b19e88f15141bb7a2205131950017a870436a6590155169ed8c58c%3B3.0%3B1660889747002",
|
|
||||||
"h5st=20220819141547037%3B5112874339406563%3Bef79a%3Btk02we0261d9e18nWhvrSx2aC6soMe7pclGcTQv6CMg7siYHeIuByMVjsRqJxCSse3xNvt%2Fwu6HwCeq%2FeialITPn5qIo%3B49af798d7d31ed6e5ecd7c47bbb266e5b082694379fc7c36d18719df4277df30%3B3.0%3B1660889747037",
|
|
||||||
"h5st=20220819141547069%3B2914383022776621%3Bef79a%3Btk02we1081d1018nWhvrSx2aC6socn4CHfZpdmDug0pk4lfxjIwRKz5Rj0ZTXz4cibnj5vX4yeQQQHW%2Bsy11i1DsK%2Fez%3B9c179a20ea51baef15ee4ee18fda5490bd7733a873e0b23883d475ddf985d352%3B3.0%3B1660889747069",
|
|
||||||
"h5st=20220819141547100%3B8499731060242064%3Bef79a%3Btk02wc4421c5018nWhvrSx2aC6soh8EHtFBC7rmOaRJhPbwxrfPoC4Jko%2BPXqblz0EPWL%2F2vmBuQtKyCTIKZWCLPPX7E%3B939389948edc1368231633a70f30e2c52933678dc9f737c33b72d53b3fa5087e%3B3.0%3B1660889747100",
|
|
||||||
"h5st=20220819141547139%3B5345530784246546%3Bef79a%3Btk02wb1d51bde18nWhvrSx2aC6sofJwX26xGx%2BcPX5YWrD%2BThKlaBrnDVns%2B7tN81qLmCAUio8FIzp4A9AvaNOj81zYA%3B5185c40a89e6c3aa941663d8c0cd0e15de997940a38349355b9fe1d53d18a1fd%3B3.0%3B1660889747139",
|
|
||||||
"h5st=20220819141547172%3B5515997380421177%3Bef79a%3Btk02w94f91b9618nWhvrSx2aC6so4XG6EWPLIyLeJX0sG1ipNl43M94jO%2FjKAr8LfmehDrtftsEJ6y%2FGklN2%2B24viqs7%3B152e87c1d383c315bffe68749ea573d52984b34d9399d381f087a127e75f0790%3B3.0%3B1660889747172",
|
|
||||||
"h5st=20220819141547204%3B1980045026422020%3Bef79a%3Btk02waeea1c2618nWhvrSx2aC6so5XZFKo0fkncy8GDbKB8ThQ3qQYcjqMG6AIjc3%2FyDv8HiFoxKGpIAdZhLRs0tPtCG%3Be91e970068a2a23c714e443daca470d15d9f4d6247bfd4c86acaf633c8507695%3B3.0%3B1660889747204",
|
|
||||||
"h5st=20220819141547236%3B7116841733995103%3Bef79a%3Btk02w9c961b4918nWhvrSx2aC6soYEbT4oqASC%2FAEp3yZRt%2FDBpUOYrF%2BW3Y1jvq%2BQg%2F5qovIj%2B3JxWhVY%2Bx5IBn0H0h%3B416e68580100c99215fe467e8e987e7a7a56ff526b7aef6ecd55850a69c2ea5f%3B3.0%3B1660889747236",
|
|
||||||
"h5st=20220819141547271%3B4403223981505637%3Bef79a%3Btk02wc9fb1d5418nWhvrSx2aC6so1N5iYTwHjCnU1Ecw%2FCDWHqfxz8s5ZizYfYNyx5TupqB%2FsH9hJbYHoltnvH8uPcEp%3Ba4db98482200607fb721f45a4f8e4472617d25ccad866a6429356aa644b69248%3B3.0%3B1660889747271",
|
|
||||||
"h5st=20220819141547301%3B6269457066636915%3Bef79a%3Btk02wc2b31cc418nWhvrSx2aC6soghShqLVz0DHnWCg%2B9vbU5fE225uZVEjtXKIqqMxtLleREhVbBA9z8q0R9kznOQse%3B1654d4da525e815021e3e2acaff0a57eebf34bbe4cf21b6bdc87650645cbf54d%3B3.0%3B1660889747301",
|
|
||||||
"h5st=20220819141547337%3B4748487432985588%3Bef79a%3Btk02w9a6b1b2918nWhvrSx2aC6soKuUOxOh92oN%2Br5D%2BROf77f8FJ%2FpvbKpU0hbBnLWWv3oiT4c%2FCjATg6E5W9pJ%2BcRQ%3B550cd59dacdb5f210261058d59196eab514a7b6f07c7f527d38fdc1c45926c59%3B3.0%3B1660889747337",
|
|
||||||
"h5st=20220819141547375%3B9587299040955132%3Bef79a%3Btk02wbe291c8418nWhvrSx2aC6soVH%2BDS4cnTjWVKfDzdYCGJwvWMIXfHlhNrt4Yd5IuIwQ3qii2g7OXr6AIMTIQpx4q%3B33def54519f677847a64c92acaa36165ead05864bf766d6e21fbbdf9f5ad7262%3B3.0%3B1660889747375",
|
|
||||||
"h5st=20220819141547407%3B2499436579990825%3Bef79a%3Btk02w97331b2c18nWhvrSx2aC6soPWq2BoBIFv6SX%2BJq2q0qzEC7AJLagRYpCYe7gbR%2BZ32n%2FvDq8SjYFtmF2%2B%2FDZZVb%3Bae87ca17e87cf94c04886314b85405bf6086a11ae421caea63c77a37d0bcc48e%3B3.0%3B1660889747407",
|
|
||||||
"h5st=20220819141547434%3B7525127269047478%3Bef79a%3Btk02wc0b41c1518nWhvrSx2aC6sorTZ9i%2FUzLKeYsifSv%2FZIp2Z9ltgYJTCS0Qh%2BbLJxVOb4N3ViHEJrsrNQXK4%2F7dOn%3B845e13662d9381ec8f74efdecd5f5abdd0f7f8135ba6737ba4256409f14fdd35%3B3.0%3B1660889747434",
|
|
||||||
"h5st=20220819141547461%3B3740973277525822%3Bef79a%3Btk02wc0b11d0e18nWhvrSx2aC6soACLhPyQHS1CCYlrX7wSIbx61CfTiaUadQkvUHOyiEHixcy2Pm%2FpjBpXV6y2WkSzm%3B7c7dac11b0d61c2e97795b09a487fdf342eae8664f6bd0eeb46d59c49daeddad%3B3.0%3B1660889747461",
|
|
||||||
"h5st=20220819141547492%3B8884560071093723%3Bef79a%3Btk02wc78f1c7d18nWhvrSx2aC6socu54tcfkcADOa8pTrSwFpRTzDo4XJQF67%2Bjo9XwREGVKfvg2wL3gmKcy8bcKPz95%3Ba2cace6d3aba0fd8174cbab7c8a3ebfd050bca2698ee0b64e6a6a8a0786efefe%3B3.0%3B1660889747492",
|
|
||||||
"h5st=20220819141547535%3B6639593420919697%3Bef79a%3Btk02wcda41c9d18nWhvrSx2aC6soq%2FZOq3KvoE%2Fv3IbplKGlh4ScsxOkYDWMrlggjYO6iycU%2F284yOWYvEJmCAlFlV%2BN%3B1f539804dba1372835df42c7e3b99fca605332bd950027909f44d8ba269ac6de%3B3.0%3B1660889747535",
|
|
||||||
"h5st=20220819141547570%3B0621242379587639%3Bef79a%3Btk02w92421b2a18nWhvrSx2aC6soBcfr7pE2j2rGFsPf%2BPUL1w24%2F61LSk2tXWDv%2FQPlfXNivJQ8COGP13tKrX3RjDtK%3Bf8a2e8e78f6f672f2c1aee9856927cf56f4c5d82cab88c43d1dbd2f57f04b990%3B3.0%3B1660889747570",
|
|
||||||
"h5st=20220819141547604%3B5112956843996727%3Bef79a%3Btk02wcf481cb218nWhvrSx2aC6sowZa7nMuQ1YmyurHC9sWGAzF52bfGWupR7CrFzCGBtRQ85xUiw85brUjuXHkz07j3%3B3d9d5cf262a0664a53f69c6e7d712b3eeb7c7b71f4898ae48a15aace528126c9%3B3.0%3B1660889747604",
|
|
||||||
"h5st=20220819141547637%3B5395017328535244%3Bef79a%3Btk02wae881b9f18nWhvrSx2aC6sohm3veTbI%2FI48zOW9n67SmzDwqSH07KxnqAqfz%2F9Q1PW58QlUecQNUCK5rd7WR95f%3Baef6baa83fcb375b06753fd44047deb30c7bca6f22c0db9684859ff8a8be8bc0%3B3.0%3B1660889747637",
|
|
||||||
"h5st=20220819141547667%3B3301221734583239%3Bef79a%3Btk02we66c1df518nWhvrSx2aC6so%2BgSlrVghRMoIgwdIlNQ8rZ%2B6OUy0kerQalUurjHOCmjzmcWHua1pDHFskmujTdnE%3B3f0c5e2854d9446eafd0f07a0426d6a5f2c178301e5347b9eb48bd4b028e69ae%3B3.0%3B1660889747667",
|
|
||||||
"h5st=20220819141547696%3B6760333791805368%3Bef79a%3Btk02wb0e61c4518nWhvrSx2aC6sodnVDzSLLaq%2BbD%2BIA1w5%2B2Teqj3kw9FzTlFzEZBVDen5ymD4T7oWkZxwuQBp5f9ZD%3Bedf9d40837a90ebc7e551e67d426ea3d82906dd2ff1f5b046bb18937b22833b7%3B3.0%3B1660889747696",
|
|
||||||
"h5st=20220819141547733%3B8406838179271731%3Bef79a%3Btk02wd20d1d6918nWhvrSx2aC6soL%2FtJQJqGPPmOUfzFpSLmf%2BwIhTO3tHHT3xIuiizKzh6h%2Fv4loujmlqNRbfHGSrTF%3B2e15c2bf6a10e20322e36c8109e21325068f0ad956826a50ac8f37e8a78564b7%3B3.0%3B1660889747733",
|
|
||||||
"h5st=20220819141547770%3B1888810065938749%3Bef79a%3Btk02wa5a01bd518nWhvrSx2aC6soCccEcXwLVKA5p5jpyG5XWr4%2BOCeT6B0Vpoy1XNIN4RYoeA%2Bn7SLKym42zOASQxls%3B7af9db79be9be12613a6fc6bf5a15779f5085a0054055d60e782bbdcdd60efcf%3B3.0%3B1660889747770",
|
|
||||||
"h5st=20220819141547805%3B9621663542080186%3Bef79a%3Btk02wcd981c8018nWhvrSx2aC6soAh4jDv8BztfXhQ3opp5MrndW3iXRmdSUA4YeB6AkpgeGn%2FNu7vUEGEucPpRm47P3%3B6e13b6d22fdfacc5ff7938c885cf338410a64437e776a35d19fa3f06420d98d6%3B3.0%3B1660889747805",
|
|
||||||
"h5st=20220819141547836%3B6196965726391966%3Bef79a%3Btk02wad021bf618nWhvrSx2aC6so%2FDY5ve%2FYM%2Bi3zSUiE5jseSeeebz6c%2BbcqsQY5SfAA%2BQKCjFOllhd11GEobb3lZj1%3B3678df826b049642a98e99f8d1f76081a7ade695f745c112e169ac41d5324e76%3B3.0%3B1660889747836",
|
|
||||||
"h5st=20220819141547869%3B4427850174929265%3Bef79a%3Btk02wb2b01c3a18nWhvrSx2aC6soWFXKeT%2FIPCO6FpWjqcdEfUY3aSKpkyueFUEk00J%2Fyw06Vd0Xwc%2BsnLVilNvwI96M%3B7c8e625a132963d5266dcd2c856c5b8be5590bbbad756b90a0ae6634d9c5cdf8%3B3.0%3B1660889747869",
|
|
||||||
"h5st=20220819141547902%3B7476521448813483%3Bef79a%3Btk02wc1d51cc618nWhvrSx2aC6sorfFyCRwf2HQStOpI59nuA9Th2KSg35w4MXYPeINmtWK3fshpxjAkRPXnWIMmGkUZ%3Bc8f4002a6472ad1912ecebfe71e3e00b1b586f2a858f565490ada2c6624b03ce%3B3.0%3B1660889747902",
|
|
||||||
"h5st=20220819141547934%3B8314052598557781%3Bef79a%3Btk02w8b471b3118nWhvrSx2aC6soiS4Vn64dD5AvZASo37BqP%2BJJ6b1vGGlcZE%2FzeNg7%2Bh4CiSlrLcQdhFI3cCYo21ei%3B81f4bbabbb487ead318ce348155310d1426e4cfea13a1de212292fbc99599bf9%3B3.0%3B1660889747934",
|
|
||||||
"h5st=20220819141547969%3B8483805944361835%3Bef79a%3Btk02wd6001c9e18nWhvrSx2aC6sozWBOmYvyuaEj1XGIh3dywZk40ftOAWNv%2BeeZmMGgAX77APujnGDc5A26cmkqEZhA%3Be9ea527f029b92e772373ebc19e8e91aedcbe7497f222cd688611d07e07d9c21%3B3.0%3B1660889747969",
|
|
||||||
"h5st=20220819141548005%3B7933028394652129%3Bef79a%3Btk02wb5901c3418nNcjLjKpsqGXyegcx0U4J4Gi9ivEACprMK9Dff2oN7L0Ce4eaKSo3tiooTDgWAZbNcCzTerXG35rF%3B2fe0640801dc8f0732515c2dc86844b8fb759ab8fde98ce063130a2e9e0d528c%3B3.0%3B1660889748005",
|
|
||||||
"h5st=20220819141548041%3B4656853197029999%3Bef79a%3Btk02w9ef41b5d18nNcjLjKpsqGXy5qgeoNT9n%2FHksI%2B1AhHDsOFAcJ5S97yL%2FOROQJ1PHPlKoxGgIx1U5gy%2Fh3V7WMSp%3Bed48e90dcaceb0e2add4d8a8b88073061966a05e73878936aa333f3dd2a3bde9%3B3.0%3B1660889748041",
|
|
||||||
"h5st=20220819141548075%3B7162405434508901%3Bef79a%3Btk02wabe31bcf18nNcjLjKpsqGXyaRGVHDUDABjq9zgejdFHAq%2FB0Ov%2BYCM2uMzZ1nVUzS4KCQDbp4%2BLnX4bBueqXDTQ%3Bdda417be50f8161436408b61d815f802017f9e2c24f658ecb1c0c23ee54a8e76%3B3.0%3B1660889748075",
|
|
||||||
"h5st=20220819141548105%3B7774763587607616%3Bef79a%3Btk02wa86a1b2718nNcjLjKpsqGXyZ6n2M7Y8WYTpFGUhYVceAnjNyl3UBy2Yf3ZQNi309d9u9Hi9C9WV8hsKGFG%2FW5RG%3Bf4d3dd7a12e5cb775dd93af0997d0273256e5d2ff334f6b89d4b4746e474be1d%3B3.0%3B1660889748105",
|
|
||||||
"h5st=20220819141548139%3B4553807882190839%3Bef79a%3Btk02we1be1d5418nNcjLjKpsqGXyqBDxoOW6%2Bgvf6qdXDc1t4yiQzyVxvMZvq8EEA6NONuqTOLTqE%2BiT0yswa5UYTWyS%3B6abd24e94a68a8144ee2a29fc7163b231b9f96f22e5d527cfceecf620e565d93%3B3.0%3B1660889748139",
|
|
||||||
"h5st=20220819141548176%3B5195527490969665%3Bef79a%3Btk02wd11b1c7a18nNcjLjKpsqGXy2Fo3zReGr8mhazV6CHMAqMzslChCMqfBwOPy2RmqJFqSBHVCYHMFheHJH7rCd4IV%3B2a1dc7c069882198e5a83ff9146bc6da18bc2af9200ce4254247e4b71e3929e6%3B3.0%3B1660889748176",
|
|
||||||
"h5st=20220819141548221%3B8833803589723439%3Bef79a%3Btk02we2f61cc618nNcjLjKpsqGXyjOruVBvRqTkJypNwKLnEgEOVRNQUG9JEdmDio%2Fc9iDMgo2tBPF13mjj4ZXWhACjX%3B1e9924ea5c5df81cd85300740586b1059e754e0729117e7c9a7a78ea0ebb6db8%3B3.0%3B1660889748221",
|
|
||||||
"h5st=20220819141548254%3B6069482737755094%3Bef79a%3Btk02wa3b71bdb18nNcjLjKpsqGXyJCA4bW758Hltsm5nVMh7vRPpxNfR2EFMMAE0UMKwTR%2FKd6MZaLEHYqbyJo4gkBqN%3Baf0e80645553848055d721bdd2afdca19fc943c5edf6bdcf6797b40264299f21%3B3.0%3B1660889748254",
|
|
||||||
"h5st=20220819141548283%3B8158559047326268%3Bef79a%3Btk02wccd91c8518nNcjLjKpsqGXy%2B5CsgSceImCwAHyPdeu2xx9Kwe0JroeKwFNl1Yy428KAyc%2BlJFFAtx9Db909wzIs%3Be948aeb976c037266294a93aa4b5371ee3fc6599289b6d5c96f2dc6d5c2c7a68%3B3.0%3B1660889748283",
|
|
||||||
"h5st=20220819141548316%3B9537255896441652%3Bef79a%3Btk02wea6a1d4f18nNcjLjKpsqGXygzoEeVgueWY7p3Yv2U7Vks2xKVC5kBUHEuOPynrOz6fcvoOPrkpa60xjAMGv66WL%3B2b9baa07a0e99c5f094e46640c22fd2a7726368eed28436de78522b221fa303e%3B3.0%3B1660889748316",
|
|
||||||
"h5st=20220819141548347%3B2661128970400526%3Bef79a%3Btk02wa7ef1bc818nNcjLjKpsqGXy9eANWTk0y8I20ULHp9Lhr9vdKx0HLK%2FkTtNz66iFmglPkKsKSwQRDD8YGk7ZDAVW%3B60955f1a883a4b548919966fde868b627f9a021163f8ff9b7ec1353b8902dbc0%3B3.0%3B1660889748347",
|
|
||||||
"h5st=20220819141548379%3B8738302671898515%3Bef79a%3Btk02w99631b9618nNcjLjKpsqGXy%2FvGViU%2Fpl9f409je%2BL0%2FNhdSre0U%2BQWEOs%2BgRJQE8WmwQhrZR7DuBITCWlOFCEuz%3B5a9fffaf189800046fd3d9f900ed8a6a3cd63290a92136221662a638234867b8%3B3.0%3B1660889748379",
|
|
||||||
"h5st=20220819141548412%3B7006691473333885%3Bef79a%3Btk02wf1851d5f18nNcjLjKpsqGXyRyotr3cwq3melCUazWgOM4RUnJD6kiOUYtNQlJYPHtjT03yMsTBeX06oti%2FVe6lt%3Bb061ad93fdb4d518aab98079f0eb1377a6ee53216d67a1deed8c6704b1797c7f%3B3.0%3B1660889748412",
|
|
||||||
"h5st=20220819141548441%3B3590142363774332%3Bef79a%3Btk02wb1cb1b6918nNcjLjKpsqGXyM621JKHArsxKQduWFq3ygno7p1IYKXlFHnGKuG2l0NaPQbYFtE4NsW%2BG802K2dHQ%3Ba5b00f83f9b1691647484423d640b513a48ef831a754ac3487eaabd36643a24c%3B3.0%3B1660889748441",
|
|
||||||
"h5st=20220819141548471%3B3652728008202840%3Bef79a%3Btk02wc6fe1c8c18nNcjLjKpsqGXy4rgu1YBHxLItnT1Z5Uqe8kUOfxNxB8jp23DRrG5zeBW8qfWq8A10isnUbSPWMIlb%3B7825de5c33d2d0828eaa8c7e02b0b2a0f6408b441006a343237c3f4e6b9e0b8a%3B3.0%3B1660889748471",
|
|
||||||
"h5st=20220819141548502%3B6473509296650201%3Bef79a%3Btk02wbf381c3918nNcjLjKpsqGXy4apz1hPmT0eM4wsUR56zEfGjGQYqmLGbKVaLqCQEG58A24RbJFZGwvntmxfDE4QL%3Bf6e518ece96d086d9d68afe5d11f7ab92254b9bcd35a7c869bdac51b082ffda8%3B3.0%3B1660889748502",
|
|
||||||
"h5st=20220819141548529%3B3674038535923392%3Bef79a%3Btk02w70bc1abd18nNcjLjKpsqGXytC4IgQC435WR1J3Q0BY41sN3mDp8%2FwnNJ21WDJt9iIb1mZjEc%2Fw8i7bZ7d5Mhgdl%3B43ecee609f896e950bfe37cd9fbee05892a89e6e96d1989ecdab543ec00269e8%3B3.0%3B1660889748529",
|
|
||||||
"h5st=20220819141548558%3B7092849895130999%3Bef79a%3Btk02wcfd91c7b18nNcjLjKpsqGXykjL1nl%2BNRNriyNNaBbWEIJjxU8Nwwu4qf8nh06IOxQMopW02VL5DKI1nKDb8gPyn%3B5436509690781cc8a8972abd8efa2ce3cd4a45b03726d06b18fcd4f72a90f7d3%3B3.0%3B1660889748558",
|
|
||||||
"h5st=20220819141548593%3B3450912278328211%3Bef79a%3Btk02wc9dc1cb818nNcjLjKpsqGXyrW8iY1AyTzIWTOZGLoUCVIyDl73Tbu0AdomKAhAAEbRwMQwbtWnbb7rXPqf57l6O%3B33d1de97433d1eab2595ea113897568ba9a8a67314ebe5ac8b594ad674e922fb%3B3.0%3B1660889748593",
|
|
||||||
"h5st=20220819141548629%3B9593371286406576%3Bef79a%3Btk02wba161c2518nNcjLjKpsqGXypbjuUQ0OADfRn0orI6O8%2BjNHp%2Fyo%2F65BNxrNcgGWos%2FLaFN69KodRvMaGZirDfM1%3B6cb1693bbb7bc566938e9f43dd60c7d193bfe756c99989a6adab95a529e56007%3B3.0%3B1660889748629",
|
|
||||||
"h5st=20220819141548669%3B5008092165767585%3Bef79a%3Btk02wb2e21b9618nNcjLjKpsqGXyCgecAESWNo4i0YDIblbUJgWPpTX%2FLYoKCzv7Z18Q1w%2BIZkCtfJo9847H4XUKGbCt%3B9f80ebca6d749969d59ef0c1de6a5c87bdf93432705b3c56e2395fb1078ae1e2%3B3.0%3B1660889748669",
|
|
||||||
"h5st=20220819141548720%3B4791385012623250%3Bef79a%3Btk02wad501c5818nNcjLjKpsqGXy5LjcF6uENgFlUVBcF8C%2Fr3vp3F0hgnmFftQ6o%2BDlNQeNfS0m49BPJxTzJ0xigvpg%3Bc4198d0b11393ae2a39a62ca0b31254a2b4ac085a9ef47d653d5d66de93bf0ea%3B3.0%3B1660889748720",
|
|
||||||
"h5st=20220819141548767%3B5341529926027091%3Bef79a%3Btk02wa80e1b8e18nNcjLjKpsqGXycVe%2FEFb1KvZmqCAU%2B%2Fmof1H7SSyfUSIlGaRBG2L2CMjwVo2ggVTd%2FK9Wu8%2F4NdUs%3B09b93241067db33564dd95e0317998990cea965cd0a91844d02bbdcc80e6ad0e%3B3.0%3B1660889748767",
|
|
||||||
"h5st=20220819141548802%3B4620983136715653%3Bef79a%3Btk02waf6c1b0f18nNcjLjKpsqGXybwLpBbMKB8Xr%2BBbIqLuJEWqiAMd8CVnKGPDF0AIsQxro292iE28X0L6b2dWn7G46%3B3df4cced5198c2911f651420128495dfa98229ffc637e335d8f57992a1ab65fd%3B3.0%3B1660889748802",
|
|
||||||
"h5st=20220819141548836%3B8314150299968345%3Bef79a%3Btk02wb14e1c2918nNcjLjKpsqGXywWUA3aSGofp2nuMRCd7C8tIp0LQ3UQTXgM8A5XC1SssF19thHt8daikb%2FDZnfjZg%3B7cd0735b7d3b8cded4707b0aefc56854802c28ad1add2287ea02c54cbe4f5213%3B3.0%3B1660889748836",
|
|
||||||
"h5st=20220819141548870%3B9989675912139914%3Bef79a%3Btk02wce0d1cac18nNcjLjKpsqGXy3Bcbx%2BHlKAbrN5iRzjsF0WvTuIYkvBaXfpUM1YLe7i8V96kvnxxA2%2BLPFIeuOTkD%3B03573676c746720116de52bff0720082d4f0d3c70afac4421d010cbfff439be8%3B3.0%3B1660889748870",
|
|
||||||
"h5st=20220819141548907%3B9119687519112325%3Bef79a%3Btk02wd3f01d0c18nNcjLjKpsqGXyT9jq2nYoI18LhtDuTJzriuB%2FjexIf%2FA9lUZM0qCJcyXzCLoiRh241SuvvjGNnLnB%3B4bd480397c05bdaf2f75c348b31236afef7eae8aace8165f61adc5f6f663f228%3B3.0%3B1660889748907",
|
|
||||||
"h5st=20220819141548940%3B1825595543055788%3Bef79a%3Btk02wa8a91b9a18nNcjLjKpsqGXy%2BC8qDpI8sj%2BeaKPTyH7ESvJCK6vXDtkR3BlRYhAV9NpRoHFOo9dnNIG0PxA9MAq9%3Bd441e465eed6f8a0bb046d8da34ad997a979314366fcca2c7b274d1959ea2047%3B3.0%3B1660889748940",
|
|
||||||
"h5st=20220819141548971%3B7266650315865476%3Bef79a%3Btk02wc8dc1c3718nNcjLjKpsqGXyDsDZ7EdOkmIxayKTEk2rgVG8o4oJHBuIxKXOa19rheTKVQZH5YEISHwxIN3o5b6M%3B59bbea6e39c0972ff26117bc6b0ffa1bdbb90f2a7926e8bc789d3e03bf5690d0%3B3.0%3B1660889748971",
|
|
||||||
"h5st=20220819141549006%3B1591524067553875%3Bef79a%3Btk02w8f521b9418naC7AfYLKeLYIvuP9aKeFNg5%2FshG3IxsbjPkdl5P85H9p3oBWEjYhm8LkxR2b2LMfMVfp9v19VcDs%3B555b2ed90a5ffa1a5e189d8796b4d065573e1474b67c3014babf43c59839e017%3B3.0%3B1660889749006",
|
|
||||||
"h5st=20220819141549046%3B6459284684683832%3Bef79a%3Btk02wa0871bf618naC7AfYLKeLYIbZK3%2FqjghekgWsJpo6ytjBvaFH1Yw02dmP4WJdf%2Bh%2F%2FN11njSvD9Y6EKzTxnnOOo%3B7cb85393d9ac01d15408fa9b0921a81c3c53a3e5414068eb4bc1ef36455d3545%3B3.0%3B1660889749046",
|
|
||||||
"h5st=20220819141549078%3B8901247463464561%3Bef79a%3Btk02wad251c6718naC7AfYLKeLYIbsfXu5JtYDjmFjGDrYBsCQMcT9Es%2FiUji9LjusQChXmg1%2FnJeQvQ1zoIlIcsJJ3V%3B14142679a999951637a86a3aa08a376d10202cdd42a974e92bc3ccfb60c2d653%3B3.0%3B1660889749078",
|
|
||||||
"h5st=20220819141549111%3B6289507402243332%3Bef79a%3Btk02w91591b7518naC7AfYLKeLYIHahDpwUIORkjQMFHmHs4%2BM9VWyyTAIgeV2jdf%2BbA%2FzhLfXEMKPisY81Qj14xEHGr%3B415be5225bde3948be97169f133d7ee15895e97c5cd5e3f19a465395898961e0%3B3.0%3B1660889749111",
|
|
||||||
"h5st=20220819141549145%3B9472305830111931%3Bef79a%3Btk02w6f8d1afc18naC7AfYLKeLYI3dGMW2%2B7OeSbFLtbOh0jiIli8t4oEOqHXU4S0HTjNZh8t5k1pVGUXvUVDKWR0gaJ%3Be1f87bd094b8fc857f8e70f81f86f4aab7c3906b5f97b495abd87e012346735e%3B3.0%3B1660889749145",
|
|
||||||
"h5st=20220819141549179%3B4445921483604004%3Bef79a%3Btk02w5e3b1acc18naC7AfYLKeLYI%2FQ50PX3djZB4ZIEzt4zE2cu%2Bb7d86lkcbOOH%2BCDLa2nEju%2Blqkm9Tac43%2FRVYsXx%3B20453d0fff04af66fe1fda7153f2552e9789ca8433ed19d2aa70dae1e3fd0c72%3B3.0%3B1660889749179",
|
|
||||||
"h5st=20220819141549207%3B9086273500098905%3Bef79a%3Btk02w77dd1b9218naC7AfYLKeLYIgLWA4HwCP0Y4KOAdNjgKieHQi%2FgPehA2b2KXs6MqC3SwbT9msqtZItfzH1yqUHS4%3B3602689b8223457ce1659694d0574be015d4cd74606cea4980de29b2816f8565%3B3.0%3B1660889749207",
|
|
||||||
"h5st=20220819141549237%3B3852222491474170%3Bef79a%3Btk02wb35b1c2a18naC7AfYLKeLYIyaksWxxFMGAwPGgrJa%2Br%2BYP6vdpGwFCowI4meV%2FKtj8gmRk%2FwOAC2Mz2w5KGeTGc%3Be448387eed584c5711ffea430719e4b7e87c795d236b6229665f177a6904c9d5%3B3.0%3B1660889749237",
|
|
||||||
"h5st=20220819141549267%3B7776423758138313%3Bef79a%3Btk02wab2a1c5d18naC7AfYLKeLYIg2xRB%2FqiSSRIHmb5soSn5zjljDvthdcREPbtdTRyUR9G0r19CZQNh7KKpdwdHDnQ%3Bb47cc282bf79ba9e03f88f0dc77a14f7bdc520231e929017a81643d4697b4b6d%3B3.0%3B1660889749267",
|
|
||||||
"h5st=20220819141549304%3B5246051979572872%3Bef79a%3Btk02w7e5c1b4318naC7AfYLKeLYI7N3D%2FzYNqHd3KvSydsRszu7C5ir4hWH1Zc8d0N3A0PUjXkXBD9VJ2qnyx3drD6fU%3B62a84f79f63b44e2b8c5f52b0752d0196b964e2a03de5d85e517257d0558a277%3B3.0%3B1660889749304",
|
|
||||||
"h5st=20220819141549338%3B9172778352417296%3Bef79a%3Btk02wa3b61cb118naC7AfYLKeLYIPR3TS9nn0pWGK7IskhZTGN%2F0kdplkxaRkddqwsjtAzM1oqt%2FGJhPznOCflqY7T9N%3B50516b4181f5c02548b7c1916479e73d7e484b401488e62325895a8add0dc837%3B3.0%3B1660889749338",
|
|
||||||
"h5st=20220819141549377%3B7478780619703877%3Bef79a%3Btk02w6ce61aee18naC7AfYLKeLYIce507J3meTnq6KXwG69j3sG2f4Or%2B9Vs7nanf815uf%2BQjvAXcWTucnD5LqBT4TCi%3Bcbe3d44c47fdc07db85f4f4f786c8110ea4274cb51744a210229ea1f29d49969%3B3.0%3B1660889749377",
|
|
||||||
"h5st=20220819141549406%3B9217053453828622%3Bef79a%3Btk02w838c1b7a18naC7AfYLKeLYIGaaAFNVsnC62cF6VOohPFiWkRsW1lOxq0jGc6GtXkl44F3%2Bv8TggY9pG1ouj%2BivF%3Bbe4f95ec80d32bdad4ce76de413515195047787b6f3eb69e962b24d86f923aae%3B3.0%3B1660889749406",
|
|
||||||
"h5st=20220819141549437%3B3478651931915311%3Bef79a%3Btk02w9cc11c2018naC7AfYLKeLYI8VcM8sx%2FnH7jty2nud%2Fs0tKT7SRxiMCUq82JSav3ydweQhXiY1jZMtuec8F0QzM0%3Bdf3e77e3b7d59b61dc3a75750484d67a7296ecbdf73af687156a0f56a8d25ce1%3B3.0%3B1660889749437",
|
|
||||||
"h5st=20220819141549471%3B2269870536798716%3Bef79a%3Btk02wcfbf1d6b18naC7AfYLKeLYIyIsW1wRsvAfuEMxdxpbwJYMtinCfWuU2pBZK3qEez%2FnE6JSHdsLkabXmg0sIebdu%3B127c580599f72e096d2c76e536e3ca4d4c932e0bf7967d77395ab4a5310df388%3B3.0%3B1660889749471",
|
|
||||||
"h5st=20220819141549500%3B8997739256187387%3Bef79a%3Btk02w8f5d1c6718naC7AfYLKeLYInsBBl37G%2BGs9L%2Bmk5VHgdhU3YZae6XovuvbihxFYNCUV5RceOuzvPSmxjRHRGSFw%3B6924b7e8bf3622468c97dbec4b9d2e3b1de2972c560e9ca6b9ec814d85ce0095%3B3.0%3B1660889749500",
|
|
||||||
"h5st=20220819141549533%3B2287215493582187%3Bef79a%3Btk02w55811aa818naC7AfYLKeLYIZ%2FhNey52CqQ4D%2F2n9I65v07qKJ7sac15dssFPEm8BzbS%2BBt%2B8aJ3SvXjVApZmwJh%3B44ce9c6bcc163247915046be53c7b88c5fa34753688e45ff5ac269ca79c359b3%3B3.0%3B1660889749533",
|
|
||||||
"h5st=20220819141549576%3B2278195305233032%3Bef79a%3Btk02w6d701b8418naC7AfYLKeLYI38hY38D7T0mATWJg9U6gwYVIofsSi720utTb29nXovvChZhSkJKCb7SZGCzabUfb%3B071328a8775808db1f4b34595e48b91afa3bc5264a0bc03bb2127a7e3cb5a956%3B3.0%3B1660889749576",
|
|
||||||
"h5st=20220819141549606%3B5682911734035412%3Bef79a%3Btk02wb2551c8918naC7AfYLKeLYI4a4wjhewu%2FweS6pcXAOYirfEqXtJOdwL8Kl5P6XNyP3uCzvQvBTJSOsc850y3ouf%3Bf142a433b329094e6835ca3fe3a23afddb97987d8301f1b449c3cff9d5433624%3B3.0%3B1660889749606",
|
|
||||||
"h5st=20220819141549642%3B2907976443584679%3Bef79a%3Btk02w8c791bae18naC7AfYLKeLYIVHR99aI28wuCpLsR1uFBi8gZYGtxtTuskEBSMKEWDGrmv%2Bjr8i0kNzN%2FeZ5KVe9S%3B8bb0f9ba24d42217d9d618c4d1149591456255deee59f79a48e8468401652edf%3B3.0%3B1660889749642",
|
|
||||||
"h5st=20220819141549681%3B8548078621880087%3Bef79a%3Btk02w96ab1bf818naC7AfYLKeLYIlrDpGEMQQLz9MDypik3gPaUHz7%2FKaCkN74eNiXYOUiAnbVMjXUIopNBr1GJtD8yt%3B99f8736532462a3dd6ecac4a483a2a04aa98f929ed81afa9743908f00d73bd49%3B3.0%3B1660889749681",
|
|
||||||
"h5st=20220819141549720%3B5316283437993892%3Bef79a%3Btk02w7d091b9d18naC7AfYLKeLYI0i2rjXLHU9caO1nsA%2Bq9tKe0%2B2g7uLMRWUb4bBlsb2vWUzCIheluwxAumAf3H%2Bv9%3B0cd895640360eb1197c26fe518e967de3161d0cc3c0942243abb9c15c769e8da%3B3.0%3B1660889749720",
|
|
||||||
"h5st=20220819141549770%3B6874028129216962%3Bef79a%3Btk02w70711b3718naC7AfYLKeLYIRQrWAZ99Z8KAVW1hXzmrs05k3t81Z82%2BuBSpr3vDx6bP1et3i6rnPo%2BGOXjgnJPl%3Be7815004a28f4897e747c636b30f47fdce37731f3769cd9a29551e87f6594412%3B3.0%3B1660889749770",
|
|
||||||
"h5st=20220819141549806%3B6831796942518088%3Bef79a%3Btk02w945f1bfd18naC7AfYLKeLYIFUIGbz%2BOmufny%2FgB72Xq8hyeCMdUThgPNMBC7nvVi3CPWmBxDnJBAweL9LOdCzpj%3Bd49b46055c7f16168d2f7e9bee40fa6c37067dca006e4a19a8be9beb2c7c527c%3B3.0%3B1660889749806",
|
|
||||||
"h5st=20220819141549841%3B9626869407533617%3Bef79a%3Btk02wa6051c3d18naC7AfYLKeLYIjdNhPeAc%2FzcX7z18ohkfUSiTZhasdVr4VYI9KJKr33sS0ckQZXYjCkE2g2jsYxs8%3Bd306883474db7456eb57d379f97710054e3677a8a9b7c3bb3a8bbd940d3b5c58%3B3.0%3B1660889749841"]
|
|
||||||
|
|
||||||
function random() {
|
|
||||||
return h5sts[parseInt(Math.random() * (h5sts.length - 1), 10)];
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = {random};
|
|
||||||
|
|
||||||
|
|
||||||
BIN
icon/DD_bot.png
|
Before Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 46 KiB |
|
Before Width: | Height: | Size: 63 KiB |
|
Before Width: | Height: | Size: 24 KiB |
BIN
icon/action1.png
|
Before Width: | Height: | Size: 79 KiB |
BIN
icon/action2.png
|
Before Width: | Height: | Size: 59 KiB |
BIN
icon/action3.png
|
Before Width: | Height: | Size: 95 KiB |
BIN
icon/bark.jpg
|
Before Width: | Height: | Size: 424 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 83 KiB |
BIN
icon/fork.png
|
Before Width: | Height: | Size: 87 KiB |
BIN
icon/git1.jpg
|
Before Width: | Height: | Size: 39 KiB |
BIN
icon/git10.jpg
|
Before Width: | Height: | Size: 39 KiB |
BIN
icon/git11.jpg
|
Before Width: | Height: | Size: 22 KiB |
BIN
icon/git12.jpg
|
Before Width: | Height: | Size: 21 KiB |
BIN
icon/git13.jpg
|
Before Width: | Height: | Size: 32 KiB |
BIN
icon/git14.jpg
|
Before Width: | Height: | Size: 29 KiB |
BIN
icon/git2.jpg
|
Before Width: | Height: | Size: 20 KiB |
BIN
icon/git3.jpg
|
Before Width: | Height: | Size: 23 KiB |
BIN
icon/git4.jpg
|
Before Width: | Height: | Size: 25 KiB |
BIN
icon/git5.jpg
|
Before Width: | Height: | Size: 13 KiB |
BIN
icon/git6.jpg
|
Before Width: | Height: | Size: 22 KiB |
BIN
icon/git7.png
|
Before Width: | Height: | Size: 160 KiB |
BIN
icon/git8.jpg
|
Before Width: | Height: | Size: 50 KiB |
BIN
icon/git9.jpg
|
Before Width: | Height: | Size: 31 KiB |
BIN
icon/iCloud1.png
|
Before Width: | Height: | Size: 32 KiB |
BIN
icon/iCloud2.png
|
Before Width: | Height: | Size: 32 KiB |
BIN
icon/iCloud3.png
|
Before Width: | Height: | Size: 41 KiB |
BIN
icon/iCloud4.png
|
Before Width: | Height: | Size: 31 KiB |
BIN
icon/iCloud5.png
|
Before Width: | Height: | Size: 57 KiB |
BIN
icon/iCloud6.png
|
Before Width: | Height: | Size: 52 KiB |
BIN
icon/iCloud7.png
|
Before Width: | Height: | Size: 38 KiB |
BIN
icon/iCloud8.png
|
Before Width: | Height: | Size: 19 KiB |
BIN
icon/jd1.jpg
|
Before Width: | Height: | Size: 625 KiB |
BIN
icon/jd2.jpg
|
Before Width: | Height: | Size: 208 KiB |
BIN
icon/jd3.jpg
|
Before Width: | Height: | Size: 163 KiB |
BIN
icon/jd4.jpg
|
Before Width: | Height: | Size: 256 KiB |
BIN
icon/jd5.png
|
Before Width: | Height: | Size: 108 KiB |
BIN
icon/jd6.png
|
Before Width: | Height: | Size: 78 KiB |
BIN
icon/jd7.png
|
Before Width: | Height: | Size: 131 KiB |
BIN
icon/jd8.png
|
Before Width: | Height: | Size: 311 KiB |
|
Before Width: | Height: | Size: 13 KiB |
BIN
icon/jd_pet.png
|
Before Width: | Height: | Size: 9.2 KiB |
BIN
icon/qh1.png
|
Before Width: | Height: | Size: 173 KiB |
BIN
icon/qh2.png
|
Before Width: | Height: | Size: 42 KiB |
BIN
icon/qh3.png
|
Before Width: | Height: | Size: 136 KiB |
BIN
icon/txy.png
|
Before Width: | Height: | Size: 20 KiB |
101
jdCookie.js
@ -1,101 +0,0 @@
|
|||||||
/*
|
|
||||||
================================================================================
|
|
||||||
魔改自 https://github.com/shufflewzc/faker2/blob/main/jdCookie.js
|
|
||||||
修改内容:与task_before.sh配合,由task_before.sh设置要设置要做互助的活动的 ShareCodeConfigName 和 ShareCodeEnvName 环境变量,
|
|
||||||
然后在这里实际解析/ql/log/.ShareCode中该活动对应的配置信息(由code.sh生成和维护),注入到nodejs的环境变量中
|
|
||||||
修改原因:原先的task_before.sh直接将互助信息注入到shell的env中,在ck超过45以上时,互助码环境变量过大会导致调用一些系统命令
|
|
||||||
(如date/cat)时报 Argument list too long,而在node中修改环境变量不会受这个限制,也不会影响外部shell环境,确保脚本可以正常运行
|
|
||||||
魔改作者:风之凌殇
|
|
||||||
================================================================================
|
|
||||||
|
|
||||||
此文件为Node.js专用。其他用户请忽略
|
|
||||||
*/
|
|
||||||
//此处填写京东账号cookie。
|
|
||||||
let CookieJDs = [
|
|
||||||
]
|
|
||||||
// 判断环境变量里面是否有京东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('zh', {hour12: false}).replace(' 24:',' 00:')}=====================\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();
|
|
||||||
}
|
|
||||||
|
|
||||||
// 以下为注入互助码环境变量(仅nodejs内起效)的代码
|
|
||||||
function SetShareCodesEnv(nameConfig = "", envName = "") {
|
|
||||||
let rawCodeConfig = {}
|
|
||||||
|
|
||||||
// 读取互助码
|
|
||||||
let shareCodeLogPath = `${process.env.QL_DIR}/log/.ShareCode/${nameConfig}.log`
|
|
||||||
let fs = require('fs')
|
|
||||||
if (fs.existsSync(shareCodeLogPath)) {
|
|
||||||
// 因为faker2目前没有自带ini,改用已有的dotenv来解析
|
|
||||||
// // 利用ini模块读取原始互助码和互助组信息
|
|
||||||
// let ini = require('ini')
|
|
||||||
// rawCodeConfig = ini.parse(fs.readFileSync(shareCodeLogPath, 'utf-8'))
|
|
||||||
|
|
||||||
// 使用env模块
|
|
||||||
require('dotenv').config({path: shareCodeLogPath})
|
|
||||||
rawCodeConfig = process.env
|
|
||||||
}
|
|
||||||
|
|
||||||
// 解析每个用户的互助码
|
|
||||||
let codes = {}
|
|
||||||
Object.keys(rawCodeConfig).forEach(function (key) {
|
|
||||||
if (key.startsWith(`My${nameConfig}`)) {
|
|
||||||
codes[key] = rawCodeConfig[key]
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// 解析每个用户要帮助的互助码组,将用户实际的互助码填充进去
|
|
||||||
let helpOtherCodes = {}
|
|
||||||
Object.keys(rawCodeConfig).forEach(function (key) {
|
|
||||||
if (key.startsWith(`ForOther${nameConfig}`)) {
|
|
||||||
helpCode = rawCodeConfig[key]
|
|
||||||
for (const [codeEnv, codeVal] of Object.entries(codes)) {
|
|
||||||
helpCode = helpCode.replace("${" + codeEnv + "}", codeVal)
|
|
||||||
}
|
|
||||||
|
|
||||||
helpOtherCodes[key] = helpCode
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// 按顺序用&拼凑到一起,并放入环境变量,供目标脚本使用
|
|
||||||
let shareCodes = []
|
|
||||||
let totalCodeCount = Object.keys(helpOtherCodes).length
|
|
||||||
for (let idx = 1; idx <= totalCodeCount; idx++) {
|
|
||||||
shareCodes.push(helpOtherCodes[`ForOther${nameConfig}${idx}`])
|
|
||||||
}
|
|
||||||
let shareCodesStr = shareCodes.join('&')
|
|
||||||
process.env[envName] = shareCodesStr
|
|
||||||
|
|
||||||
console.info(`【风之凌殇】 友情提示:为避免ck超过45以上时,互助码环境变量过大而导致调用一些系统命令(如date/cat)时报 Argument list too long,改为在nodejs中设置 ${nameConfig} 的 互助码环境变量 ${envName},共计 ${totalCodeCount} 组互助码,总大小为 ${shareCodesStr.length}`)
|
|
||||||
}
|
|
||||||
|
|
||||||
// 若在task_before.sh 中设置了要设置互助码环境变量的活动名称和环境变量名称信息,则在nodejs中处理,供活动使用
|
|
||||||
let nameConfig = process.env.ShareCodeConfigName
|
|
||||||
let envName = process.env.ShareCodeEnvName
|
|
||||||
if (nameConfig && envName) {
|
|
||||||
SetShareCodesEnv(nameConfig, envName)
|
|
||||||
} else {
|
|
||||||
console.debug(`faker 友情提示:您的脚本正常运行中`)
|
|
||||||
}
|
|
||||||
48
jdCookie.py
@ -1,48 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# @Time : 2022/7/6 23:00
|
|
||||||
# @Author : HarbourJ
|
|
||||||
# @TG : https://t.me/HarbourToulu
|
|
||||||
# @File : jdCookie.py
|
|
||||||
|
|
||||||
import os
|
|
||||||
import time
|
|
||||||
from functools import partial
|
|
||||||
print = partial(print, flush=True)
|
|
||||||
|
|
||||||
|
|
||||||
def get_cookies():
|
|
||||||
CookieJDs = []
|
|
||||||
if os.environ.get("JD_COOKIE"):
|
|
||||||
print("已获取并使用Env环境 Cookie")
|
|
||||||
if '&' in os.environ["JD_COOKIE"]:
|
|
||||||
CookieJDs = os.environ["JD_COOKIE"].split('&')
|
|
||||||
elif '\n' in os.environ["JD_COOKIE"]:
|
|
||||||
CookieJDs = os.environ["JD_COOKIE"].split('\n')
|
|
||||||
else:
|
|
||||||
CookieJDs = [os.environ["JD_COOKIE"]]
|
|
||||||
# return CookieJDs
|
|
||||||
else:
|
|
||||||
if os.path.exists("JD_COOKIE.txt"):
|
|
||||||
with open("JD_COOKIE.txt", 'r') as f:
|
|
||||||
JD_COOKIEs = f.read().strip()
|
|
||||||
if JD_COOKIEs:
|
|
||||||
if '&' in JD_COOKIEs:
|
|
||||||
CookieJDs = JD_COOKIEs.split('&')
|
|
||||||
elif '\n' in JD_COOKIEs:
|
|
||||||
CookieJDs = JD_COOKIEs.split('\n')
|
|
||||||
else:
|
|
||||||
CookieJDs = [JD_COOKIEs]
|
|
||||||
CookieJDs = sorted(set(CookieJDs), key=CookieJDs.index)
|
|
||||||
# return CookieJDs
|
|
||||||
else:
|
|
||||||
print("未获取到正确✅格式的京东账号Cookie")
|
|
||||||
return
|
|
||||||
|
|
||||||
print(f"====================共{len(CookieJDs)}个京东账号Cookie=========\n")
|
|
||||||
print(f"==================脚本执行- 北京时间(UTC+8):{time.strftime('%Y/%m/%d %H:%M:%S', time.localtime())}=====================\n")
|
|
||||||
return CookieJDs
|
|
||||||
|
|
||||||
# if __name__ == "__main__":
|
|
||||||
# get_cookies()
|
|
||||||
# print(os.environ.get("JD_COOKIE"))
|
|
||||||
@ -1,37 +0,0 @@
|
|||||||
/*
|
|
||||||
京喜工厂互助码
|
|
||||||
此文件为Node.js专用。其他用户请忽略
|
|
||||||
支持京东N个账号
|
|
||||||
*/
|
|
||||||
//云服务器腾讯云函数等NOde.js用户在此处填写东东萌宠的好友码。
|
|
||||||
// 同一个京东账号的好友互助码用@符号隔开,不同京东账号之间用&符号或者换行隔开,下面给一个示例
|
|
||||||
// 如: 京东账号1的shareCode1@京东账号1的shareCode2&京东账号2的shareCode1@京东账号2的shareCode2
|
|
||||||
let shareCodes = [
|
|
||||||
'V5LkjP4WRyjeCKR9VRwcRX0bBuTz7MEK0-E99EJ7u0k=@Bo-jnVs_m9uBvbRzraXcSA==@-OvElMzqeyeGBWazWYjI1Q==',//账号一的好友shareCode,不同好友中间用@符号隔开
|
|
||||||
'-OvElMzqeyeGBWazWYjI1Q==',//账号二的好友shareCode,不同好友中间用@符号隔开
|
|
||||||
]
|
|
||||||
|
|
||||||
// 从日志获取互助码
|
|
||||||
// const logShareCodes = require('./utils/jdShareCodes');
|
|
||||||
// if (logShareCodes.DREAM_FACTORY_SHARE_CODES.length > 0 && !process.env.DREAM_FACTORY_SHARE_CODES) {
|
|
||||||
// process.env.DREAM_FACTORY_SHARE_CODES = logShareCodes.DREAM_FACTORY_SHARE_CODES.join('&');
|
|
||||||
// }
|
|
||||||
|
|
||||||
// 判断环境变量里面是否有京喜工厂互助码
|
|
||||||
if (process.env.DREAM_FACTORY_SHARE_CODES) {
|
|
||||||
if (process.env.DREAM_FACTORY_SHARE_CODES.indexOf('&') > -1) {
|
|
||||||
console.log(`您的互助码选择的是用&隔开\n`)
|
|
||||||
shareCodes = process.env.DREAM_FACTORY_SHARE_CODES.split('&');
|
|
||||||
} else if (process.env.DREAM_FACTORY_SHARE_CODES.indexOf('\n') > -1) {
|
|
||||||
console.log(`您的互助码选择的是用换行隔开\n`)
|
|
||||||
shareCodes = process.env.DREAM_FACTORY_SHARE_CODES.split('\n');
|
|
||||||
} else {
|
|
||||||
shareCodes = process.env.DREAM_FACTORY_SHARE_CODES.split();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
console.log(`由于您环境变量(DREAM_FACTORY_SHARE_CODES)里面未提供助力码,故此处运行将会给脚本内置的码进行助力,请知晓!`)
|
|
||||||
}
|
|
||||||
for (let i = 0; i < shareCodes.length; i++) {
|
|
||||||
const index = (i + 1 === 1) ? '' : (i + 1);
|
|
||||||
exports['shareCodes' + index] = shareCodes[i];
|
|
||||||
}
|
|
||||||
67
jdEnv.py
@ -1,67 +0,0 @@
|
|||||||
import os
|
|
||||||
import random
|
|
||||||
import re
|
|
||||||
|
|
||||||
|
|
||||||
def env(key):
|
|
||||||
return os.environ.get(key)
|
|
||||||
|
|
||||||
|
|
||||||
# 宠汪汪
|
|
||||||
JD_JOY_REWARD_NAME = 500 # 默认500
|
|
||||||
if env("JD_JOY_REWARD_NAME"):
|
|
||||||
JD_JOY_REWARD_NAME = int(env("JD_JOY_REWARD_NAME"))
|
|
||||||
|
|
||||||
# Cookie
|
|
||||||
cookies = []
|
|
||||||
if env("JD_COOKIE"):
|
|
||||||
cookies.extend(env("JD_COOKIE").split('&'))
|
|
||||||
|
|
||||||
# UA
|
|
||||||
USER_AGENTS = [
|
|
||||||
"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",
|
|
||||||
]
|
|
||||||
USER_AGENTS = USER_AGENTS[random.randint(0, len(USER_AGENTS) - 1)]
|
|
||||||
|
|
||||||
|
|
||||||
def root():
|
|
||||||
if 'Options:' in os.popen('sudo -h').read() or re.match(r'[C-Z]:.*', os.getcwd()):
|
|
||||||
return True
|
|
||||||
else:
|
|
||||||
print('珍爱ck,远离docker')
|
|
||||||
return False
|
|
||||||
@ -1,37 +0,0 @@
|
|||||||
/*
|
|
||||||
东东工厂互助码
|
|
||||||
此文件为Node.js专用。其他用户请忽略
|
|
||||||
支持京东N个账号
|
|
||||||
*/
|
|
||||||
//云服务器腾讯云函数等NOde.js用户在此处填写东东萌宠的好友码。
|
|
||||||
// 同一个京东账号的好友互助码用@符号隔开,不同京东账号之间用&符号或者换行隔开,下面给一个示例
|
|
||||||
// 如: 京东账号1的shareCode1@京东账号1的shareCode2&京东账号2的shareCode1@京东账号2的shareCode2
|
|
||||||
let shareCodes = [
|
|
||||||
'',//账号一的好友shareCode,不同好友中间用@符号隔开
|
|
||||||
'',//账号二的好友shareCode,不同好友中间用@符号隔开
|
|
||||||
]
|
|
||||||
|
|
||||||
// 从日志获取互助码
|
|
||||||
// const logShareCodes = require('./utils/jdShareCodes');
|
|
||||||
// if (logShareCodes.DDFACTORY_SHARECODES.length > 0 && !process.env.DDFACTORY_SHARECODES) {
|
|
||||||
// process.env.DDFACTORY_SHARECODES = logShareCodes.DDFACTORY_SHARECODES.join('&');
|
|
||||||
// }
|
|
||||||
|
|
||||||
// 判断环境变量里面是否有东东工厂互助码
|
|
||||||
if (process.env.DDFACTORY_SHARECODES) {
|
|
||||||
if (process.env.DDFACTORY_SHARECODES.indexOf('&') > -1) {
|
|
||||||
console.log(`您的互助码选择的是用&隔开\n`)
|
|
||||||
shareCodes = process.env.DDFACTORY_SHARECODES.split('&');
|
|
||||||
} else if (process.env.DDFACTORY_SHARECODES.indexOf('\n') > -1) {
|
|
||||||
console.log(`您的互助码选择的是用换行隔开\n`)
|
|
||||||
shareCodes = process.env.DDFACTORY_SHARECODES.split('\n');
|
|
||||||
} else {
|
|
||||||
shareCodes = process.env.DDFACTORY_SHARECODES.split();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
console.log(`由于您环境变量(DDFACTORY_SHARECODES)里面未提供助力码,故此处运行将会给脚本内置的码进行助力,请知晓!`)
|
|
||||||
}
|
|
||||||
for (let i = 0; i < shareCodes.length; i++) {
|
|
||||||
const index = (i + 1 === 1) ? '' : (i + 1);
|
|
||||||
exports['shareCodes' + index] = shareCodes[i];
|
|
||||||
}
|
|
||||||
@ -1,37 +0,0 @@
|
|||||||
/*
|
|
||||||
东东农场互助码
|
|
||||||
此文件为Node.js专用。其他用户请忽略
|
|
||||||
支持京东N个账号
|
|
||||||
*/
|
|
||||||
//云服务器腾讯云函数等NOde.js用户在此处填写京东东农场的好友码。
|
|
||||||
// 同一个京东账号的好友互助码用@符号隔开,不同京东账号之间用&符号或者换行隔开,下面给一个示例
|
|
||||||
// 如: 京东账号1的shareCode1@京东账号1的shareCode2&京东账号2的shareCode1@京东账号2的shareCode2
|
|
||||||
let FruitShareCodes = [
|
|
||||||
'0a74407df5df4fa99672a037eec61f7e@dbb21614667246fabcfd9685b6f448f3@6fbd26cc27ac44d6a7fed34092453f77@61ff5c624949454aa88561f2cd721bf6@56db8e7bc5874668ba7d5195230d067a',//账号一的好友shareCode,不同好友中间用@符号隔开
|
|
||||||
'6fbd26cc27ac44d6a7fed34092453f77@61ff5c624949454aa88561f2cd721bf6@9c52670d52ad4e1a812f894563c746ea@8175509d82504e96828afc8b1bbb9cb3',//账号二的好友shareCode,不同好友中间用@符号隔开
|
|
||||||
]
|
|
||||||
|
|
||||||
// 从日志获取互助码
|
|
||||||
// const logShareCodes = require('./utils/jdShareCodes');
|
|
||||||
// if (logShareCodes.FRUITSHARECODES.length > 0 && !process.env.FRUITSHARECODES) {
|
|
||||||
// process.env.FRUITSHARECODES = logShareCodes.FRUITSHARECODES.join('&');
|
|
||||||
// }
|
|
||||||
|
|
||||||
// 判断github action里面是否有东东农场互助码
|
|
||||||
if (process.env.FRUITSHARECODES) {
|
|
||||||
if (process.env.FRUITSHARECODES.indexOf('&') > -1) {
|
|
||||||
console.log(`您的东东农场互助码选择的是用&隔开\n`)
|
|
||||||
FruitShareCodes = process.env.FRUITSHARECODES.split('&');
|
|
||||||
} else if (process.env.FRUITSHARECODES.indexOf('\n') > -1) {
|
|
||||||
console.log(`您的东东农场互助码选择的是用换行隔开\n`)
|
|
||||||
FruitShareCodes = process.env.FRUITSHARECODES.split('\n');
|
|
||||||
} else {
|
|
||||||
FruitShareCodes = process.env.FRUITSHARECODES.split();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
console.log(`由于您环境变量(FRUITSHARECODES)里面未提供助力码,故此处运行将会给脚本内置的码进行助力,请知晓!`)
|
|
||||||
}
|
|
||||||
for (let i = 0; i < FruitShareCodes.length; i++) {
|
|
||||||
const index = (i + 1 === 1) ? '' : (i + 1);
|
|
||||||
exports['FruitShareCode' + index] = FruitShareCodes[i];
|
|
||||||
}
|
|
||||||
@ -1,37 +0,0 @@
|
|||||||
/*
|
|
||||||
京喜农场助力码
|
|
||||||
此助力码要求种子 active 相同才能助力,多个账号的话可以种植同样的种子,如果种子不同的话,会自动跳过使用云端助力
|
|
||||||
此文件为Node.js专用。其他用户请忽略
|
|
||||||
支持京东N个账号
|
|
||||||
*/
|
|
||||||
//云服务器腾讯云函数等NOde.js用户在此处填写京京喜农场的好友码。
|
|
||||||
// 同一个京东账号的好友助力码用@符号隔开,不同京东账号之间用&符号或者换行隔开,下面给一个示例
|
|
||||||
// 如: 京东账号1的shareCode1@京东账号1的shareCode2&京东账号2的shareCode1@京东账号2的shareCode2
|
|
||||||
// 注意:京喜农场 种植种子发生变化的时候,互助码也会变!!
|
|
||||||
// 注意:京喜农场 种植种子发生变化的时候,互助码也会变!!
|
|
||||||
// 注意:京喜农场 种植种子发生变化的时候,互助码也会变!!
|
|
||||||
// 每个账号 shareCdoe 是一个 json,示例如下
|
|
||||||
// {"smp":"22bdadsfaadsfadse8a","active":"jdnc_1_btorange210113_2","joinnum":"1"}
|
|
||||||
let JxncShareCodes = [
|
|
||||||
'',//账号一的好友shareCode,不同好友中间用@符号隔开
|
|
||||||
'',//账号二的好友shareCode,不同好友中间用@符号隔开
|
|
||||||
]
|
|
||||||
// 判断github action里面是否有京喜农场助力码
|
|
||||||
if (process.env.JXNC_SHARECODES) {
|
|
||||||
if (process.env.JXNC_SHARECODES.indexOf('&') > -1) {
|
|
||||||
console.log(`您的京喜农场助力码选择的是用&隔开\n`)
|
|
||||||
JxncShareCodes = process.env.JXNC_SHARECODES.split('&');
|
|
||||||
} else if (process.env.JXNC_SHARECODES.indexOf('\n') > -1) {
|
|
||||||
console.log(`您的京喜农场助力码选择的是用换行隔开\n`)
|
|
||||||
JxncShareCodes = process.env.JXNC_SHARECODES.split('\n');
|
|
||||||
} else {
|
|
||||||
JxncShareCodes = process.env.JXNC_SHARECODES.split();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
console.log(`由于您环境变量里面(JXNC_SHARECODES)未提供助力码,故此处运行将会给脚本内置的码进行助力,请知晓!`)
|
|
||||||
}
|
|
||||||
JxncShareCodes = JxncShareCodes.filter(item => !!item);
|
|
||||||
for (let i = 0; i < JxncShareCodes.length; i++) {
|
|
||||||
const index = (i + 1 === 1) ? '' : (i + 1);
|
|
||||||
exports['JxncShareCode' + index] = JxncShareCodes[i];
|
|
||||||
}
|
|
||||||
4019
jdMsLogs.js
@ -1,37 +0,0 @@
|
|||||||
/*
|
|
||||||
东东萌宠互助码
|
|
||||||
此文件为Node.js专用。其他用户请忽略
|
|
||||||
支持京东N个账号
|
|
||||||
*/
|
|
||||||
//云服务器腾讯云函数等NOde.js用户在此处填写东东萌宠的好友码。
|
|
||||||
// 同一个京东账号的好友互助码用@符号隔开,不同京东账号之间用&符号或者换行隔开,下面给一个示例
|
|
||||||
// 如: 京东账号1的shareCode1@京东账号1的shareCode2&京东账号2的shareCode1@京东账号2的shareCode2
|
|
||||||
let PetShareCodes = [
|
|
||||||
'MTAxODc2NTEzNTAwMDAwMDAwMjg3MDg2MA==@MTAxODc2NTEzMzAwMDAwMDAyNzUwMDA4MQ==@MTAxODc2NTEzMjAwMDAwMDAzMDI3MTMyOQ==@MTAxODc2NTEzNDAwMDAwMDAzMDI2MDI4MQ==',//账号一的好友shareCode,不同好友中间用@符号隔开
|
|
||||||
'MTAxODc2NTEzMjAwMDAwMDAzMDI3MTMyOQ==@MTAxODcxOTI2NTAwMDAwMDAyNjA4ODQyMQ==@MTAxODc2NTEzOTAwMDAwMDAyNzE2MDY2NQ==',//账号二的好友shareCode,不同好友中间用@符号隔开
|
|
||||||
]
|
|
||||||
|
|
||||||
// 从日志获取互助码
|
|
||||||
// const logShareCodes = require('./utils/jdShareCodes');
|
|
||||||
// if (logShareCodes.PETSHARECODES.length > 0 && !process.env.PETSHARECODES) {
|
|
||||||
// process.env.PETSHARECODES = logShareCodes.PETSHARECODES.join('&');
|
|
||||||
// }
|
|
||||||
|
|
||||||
// 判断github action里面是否有东东萌宠互助码
|
|
||||||
if (process.env.PETSHARECODES) {
|
|
||||||
if (process.env.PETSHARECODES.indexOf('&') > -1) {
|
|
||||||
console.log(`您的东东萌宠互助码选择的是用&隔开\n`)
|
|
||||||
PetShareCodes = process.env.PETSHARECODES.split('&');
|
|
||||||
} else if (process.env.PETSHARECODES.indexOf('\n') > -1) {
|
|
||||||
console.log(`您的东东萌宠互助码选择的是用换行隔开\n`)
|
|
||||||
PetShareCodes = process.env.PETSHARECODES.split('\n');
|
|
||||||
} else {
|
|
||||||
PetShareCodes = process.env.PETSHARECODES.split();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
console.log(`由于您环境变量(PETSHARECODES)里面未提供助力码,故此处运行将会给脚本内置的码进行助力,请知晓!`)
|
|
||||||
}
|
|
||||||
for (let i = 0; i < PetShareCodes.length; i++) {
|
|
||||||
const index = (i + 1 === 1) ? '' : (i + 1);
|
|
||||||
exports['PetShareCode' + index] = PetShareCodes[i];
|
|
||||||
}
|
|
||||||
@ -1,37 +0,0 @@
|
|||||||
/*
|
|
||||||
京东种豆得豆互助码
|
|
||||||
此文件为Node.js专用。其他用户请忽略
|
|
||||||
支持京东N个账号
|
|
||||||
*/
|
|
||||||
//云服务器腾讯云函数等NOde.js用户在此处填写东东萌宠的好友码。
|
|
||||||
// 同一个京东账号的好友互助码用@符号隔开,不同京东账号之间用&符号或者换行隔开,下面给一个示例
|
|
||||||
// 如: 京东账号1的shareCode1@京东账号1的shareCode2&京东账号2的shareCode1@京东账号2的shareCode2
|
|
||||||
let PlantBeanShareCodes = [
|
|
||||||
'66j4yt3ebl5ierjljoszp7e4izzbzaqhi5k2unz2afwlyqsgnasq@olmijoxgmjutyrsovl2xalt2tbtfmg6sqldcb3q@e7lhibzb3zek27amgsvywffxx7hxgtzstrk2lba@olmijoxgmjutyx55upqaqxrblt7f3h26dgj2riy',//账号一的好友shareCode,不同好友中间用@符号隔开
|
|
||||||
'mlrdw3aw26j3wgzjipsxgonaoyr2evrdsifsziy@mlrdw3aw26j3wgzjipsxgonaoyr2evrdsifsziy',//账号二的好友shareCode,不同好友中间用@符号隔开
|
|
||||||
]
|
|
||||||
|
|
||||||
// 从日志获取互助码
|
|
||||||
// const logShareCodes = require('./utils/jdShareCodes');
|
|
||||||
// if (logShareCodes.PLANT_BEAN_SHARECODES.length > 0 && !process.env.PLANT_BEAN_SHARECODES) {
|
|
||||||
// process.env.PLANT_BEAN_SHARECODES = logShareCodes.PLANT_BEAN_SHARECODES.join('&');
|
|
||||||
// }
|
|
||||||
|
|
||||||
// 判断github action里面是否有种豆得豆互助码
|
|
||||||
if (process.env.PLANT_BEAN_SHARECODES) {
|
|
||||||
if (process.env.PLANT_BEAN_SHARECODES.indexOf('&') > -1) {
|
|
||||||
console.log(`您的种豆互助码选择的是用&隔开\n`)
|
|
||||||
PlantBeanShareCodes = process.env.PLANT_BEAN_SHARECODES.split('&');
|
|
||||||
} else if (process.env.PLANT_BEAN_SHARECODES.indexOf('\n') > -1) {
|
|
||||||
console.log(`您的种豆互助码选择的是用换行隔开\n`)
|
|
||||||
PlantBeanShareCodes = process.env.PLANT_BEAN_SHARECODES.split('\n');
|
|
||||||
} else {
|
|
||||||
PlantBeanShareCodes = process.env.PLANT_BEAN_SHARECODES.split();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
console.log(`由于您环境变量(PLANT_BEAN_SHARECODES)里面未提供助力码,故此处运行将会给脚本内置的码进行助力,请知晓!`)
|
|
||||||
}
|
|
||||||
for (let i = 0; i < PlantBeanShareCodes.length; i++) {
|
|
||||||
const index = (i + 1 === 1) ? '' : (i + 1);
|
|
||||||
exports['PlantBeanShareCodes' + index] = PlantBeanShareCodes[i];
|
|
||||||
}
|
|
||||||
975
jd_CheckCK.js
@ -1,975 +0,0 @@
|
|||||||
/*
|
|
||||||
cron "30 * * * *" jd_CheckCK.js, tag:京东CK检测by-ccwav
|
|
||||||
*/
|
|
||||||
//详细说明参考 https://github.com/ccwav/QLScript2.
|
|
||||||
const $ = new Env('京东CK检测');
|
|
||||||
const notify = $.isNode() ? require('./sendNotify') : '';
|
|
||||||
//Node.js用户请在jdCookie.js处填写京东ck;
|
|
||||||
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
|
|
||||||
const got = require('got');
|
|
||||||
const {
|
|
||||||
getEnvs,
|
|
||||||
getEnvById,
|
|
||||||
DisableCk,
|
|
||||||
EnableCk,
|
|
||||||
getstatus
|
|
||||||
} = require('./ql');
|
|
||||||
const api = got.extend({
|
|
||||||
retry: {
|
|
||||||
limit: 0
|
|
||||||
},
|
|
||||||
responseType: 'json',
|
|
||||||
});
|
|
||||||
|
|
||||||
let ShowSuccess = "false",
|
|
||||||
CKAlwaysNotify = "false",
|
|
||||||
CKAutoEnable = "true",
|
|
||||||
NoWarnError = "false";
|
|
||||||
|
|
||||||
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 TempErrorMessage = '',
|
|
||||||
TempSuccessMessage = '',
|
|
||||||
TempDisableMessage = '',
|
|
||||||
TempEnableMessage = '',
|
|
||||||
TempOErrorMessage = '';
|
|
||||||
|
|
||||||
let allMessage = '',
|
|
||||||
ErrorMessage = '',
|
|
||||||
SuccessMessage = '',
|
|
||||||
DisableMessage = '',
|
|
||||||
EnableMessage = '',
|
|
||||||
OErrorMessage = '';
|
|
||||||
|
|
||||||
let allMessageGp2 = '',
|
|
||||||
ErrorMessageGp2 = '',
|
|
||||||
SuccessMessageGp2 = '',
|
|
||||||
DisableMessageGp2 = '',
|
|
||||||
EnableMessageGp2 = '',
|
|
||||||
OErrorMessageGp2 = '';
|
|
||||||
|
|
||||||
let allMessageGp3 = '',
|
|
||||||
ErrorMessageGp3 = '',
|
|
||||||
SuccessMessageGp3 = '',
|
|
||||||
DisableMessageGp3 = '',
|
|
||||||
EnableMessageGp3 = '',
|
|
||||||
OErrorMessageGp3 = '';
|
|
||||||
|
|
||||||
let allMessageGp4 = '',
|
|
||||||
ErrorMessageGp4 = '',
|
|
||||||
SuccessMessageGp4 = '',
|
|
||||||
DisableMessageGp4 = '',
|
|
||||||
EnableMessageGp4 = '',
|
|
||||||
OErrorMessageGp4 = '';
|
|
||||||
|
|
||||||
let strAllNotify = "";
|
|
||||||
let strNotifyOneTemp = "";
|
|
||||||
let WP_APP_TOKEN_ONE = "";
|
|
||||||
if ($.isNode() && process.env.WP_APP_TOKEN_ONE) {
|
|
||||||
WP_APP_TOKEN_ONE = process.env.WP_APP_TOKEN_ONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
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`);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($.isNode() && process.env.CHECKCK_SHOWSUCCESSCK) {
|
|
||||||
ShowSuccess = process.env.CHECKCK_SHOWSUCCESSCK;
|
|
||||||
}
|
|
||||||
if ($.isNode() && process.env.CHECKCK_CKALWAYSNOTIFY) {
|
|
||||||
CKAlwaysNotify = process.env.CHECKCK_CKALWAYSNOTIFY;
|
|
||||||
}
|
|
||||||
if ($.isNode() && process.env.CHECKCK_CKAUTOENABLE) {
|
|
||||||
CKAutoEnable = process.env.CHECKCK_CKAUTOENABLE;
|
|
||||||
}
|
|
||||||
if ($.isNode() && process.env.CHECKCK_CKNOWARNERROR) {
|
|
||||||
NoWarnError = process.env.CHECKCK_CKNOWARNERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($.isNode() && 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);
|
|
||||||
}
|
|
||||||
|
|
||||||
!(async() => {
|
|
||||||
const envs = await getEnvs();
|
|
||||||
if (!envs[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 < envs.length; i++) {
|
|
||||||
if (envs[i].value) {
|
|
||||||
var tempid=0;
|
|
||||||
if(envs[i]._id){
|
|
||||||
tempid=envs[i]._id;
|
|
||||||
}
|
|
||||||
if(envs[i].id){
|
|
||||||
tempid=envs[i].id;
|
|
||||||
}
|
|
||||||
cookie = await getEnvById(tempid);
|
|
||||||
$.UserName = (cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1])
|
|
||||||
$.UserName2 = decodeURIComponent($.UserName);
|
|
||||||
$.index = i + 1;
|
|
||||||
$.isLogin = true;
|
|
||||||
$.error = '';
|
|
||||||
$.NoReturn = '';
|
|
||||||
$.nickName = "";
|
|
||||||
TempErrorMessage = '';
|
|
||||||
TempSuccessMessage = '';
|
|
||||||
TempDisableMessage = '';
|
|
||||||
TempEnableMessage = '';
|
|
||||||
TempOErrorMessage = '';
|
|
||||||
|
|
||||||
console.log(`开始检测【京东账号${$.index}】${$.UserName2} ....\n`);
|
|
||||||
if (MessageUserGp4) {
|
|
||||||
userIndex4 = MessageUserGp4.findIndex((item) => item === $.UserName);
|
|
||||||
}
|
|
||||||
if (MessageUserGp2) {
|
|
||||||
|
|
||||||
userIndex2 = MessageUserGp2.findIndex((item) => item === $.UserName);
|
|
||||||
}
|
|
||||||
if (MessageUserGp3) {
|
|
||||||
|
|
||||||
userIndex3 = MessageUserGp3.findIndex((item) => item === $.UserName);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (userIndex2 != -1) {
|
|
||||||
console.log(`账号属于分组2`);
|
|
||||||
IndexGp2 += 1;
|
|
||||||
ReturnMessageTitle = `【账号${IndexGp2}🆔】${$.UserName2}`;
|
|
||||||
}
|
|
||||||
if (userIndex3 != -1) {
|
|
||||||
console.log(`账号属于分组3`);
|
|
||||||
IndexGp3 += 1;
|
|
||||||
ReturnMessageTitle = `【账号${IndexGp3}🆔】${$.UserName2}`;
|
|
||||||
}
|
|
||||||
if (userIndex4 != -1) {
|
|
||||||
console.log(`账号属于分组4`);
|
|
||||||
IndexGp4 += 1;
|
|
||||||
ReturnMessageTitle = `【账号${IndexGp4}🆔】${$.UserName2}`;
|
|
||||||
}
|
|
||||||
if (userIndex4 == -1 && userIndex2 == -1 && userIndex3 == -1) {
|
|
||||||
console.log(`账号没有分组`);
|
|
||||||
IndexAll += 1;
|
|
||||||
ReturnMessageTitle = `【账号${IndexAll}🆔】${$.UserName2}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
await TotalBean();
|
|
||||||
if ($.NoReturn) {
|
|
||||||
console.log(`接口1检测失败,尝试使用接口2....\n`);
|
|
||||||
await isLoginByX1a0He();
|
|
||||||
} else {
|
|
||||||
if ($.isLogin) {
|
|
||||||
if (!$.nickName) {
|
|
||||||
console.log(`获取的别名为空,尝试使用接口2验证....\n`);
|
|
||||||
await isLoginByX1a0He();
|
|
||||||
} else {
|
|
||||||
console.log(`成功获取到别名: ${$.nickName},Pass!\n`);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($.error) {
|
|
||||||
console.log(`有错误,跳出....`);
|
|
||||||
TempOErrorMessage = $.error;
|
|
||||||
|
|
||||||
} else {
|
|
||||||
const strnowstatus = await getstatus(tempid);
|
|
||||||
if (strnowstatus == 99) {
|
|
||||||
strnowstatus = envs[i].status;
|
|
||||||
}
|
|
||||||
if (!$.isLogin) {
|
|
||||||
|
|
||||||
if (strnowstatus == 0) {
|
|
||||||
const DisableCkBody = await DisableCk(tempid);
|
|
||||||
if (DisableCkBody.code == 200) {
|
|
||||||
if ($.isNode() && WP_APP_TOKEN_ONE) {
|
|
||||||
strNotifyOneTemp = `京东账号: ${$.nickName || $.UserName2} 已失效,自动禁用成功!\n如果要继续挂机,请联系管理员重新登录账号,账号有效期为30天.`
|
|
||||||
|
|
||||||
if (strAllNotify)
|
|
||||||
strNotifyOneTemp += `\n` + strAllNotify;
|
|
||||||
|
|
||||||
await notify.sendNotifybyWxPucher(`${$.name}`, strNotifyOneTemp, `${$.UserName2}`);
|
|
||||||
}
|
|
||||||
console.log(`京东账号${$.index} : ${$.nickName || $.UserName2} 已失效,自动禁用成功!\n`);
|
|
||||||
TempDisableMessage = ReturnMessageTitle + ` (自动禁用成功!)\n`;
|
|
||||||
TempErrorMessage = ReturnMessageTitle + ` 已失效,自动禁用成功!\n`;
|
|
||||||
} else {
|
|
||||||
if ($.isNode() && WP_APP_TOKEN_ONE) {
|
|
||||||
strNotifyOneTemp = `京东账号: ${$.nickName || $.UserName2} 已失效!\n如果要继续挂机,请联系管理员重新登录账号,账号有效期为30天.`
|
|
||||||
|
|
||||||
if (strAllNotify)
|
|
||||||
strNotifyOneTemp += `\n` + strAllNotify;
|
|
||||||
|
|
||||||
await notify.sendNotifybyWxPucher(`${$.name}`, strNotifyOneTemp, `${$.UserName2}`);
|
|
||||||
}
|
|
||||||
console.log(`京东账号${$.index} : ${$.nickName || $.UserName2} 已失效,自动禁用失败!\n`);
|
|
||||||
TempDisableMessage = ReturnMessageTitle + ` (自动禁用失败!)\n`;
|
|
||||||
TempErrorMessage = ReturnMessageTitle + ` 已失效,自动禁用失败!\n`;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
console.log(`京东账号${$.index} : ${$.nickName || $.UserName2} 已失效,已禁用!\n`);
|
|
||||||
TempErrorMessage = ReturnMessageTitle + ` 已失效,已禁用.\n`;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (strnowstatus == 1) {
|
|
||||||
|
|
||||||
if (CKAutoEnable == "true") {
|
|
||||||
const EnableCkBody = await EnableCk(tempid);
|
|
||||||
if (EnableCkBody.code == 200) {
|
|
||||||
if ($.isNode() && WP_APP_TOKEN_ONE) {
|
|
||||||
await notify.sendNotifybyWxPucher(`${$.name}`, `京东账号: ${$.nickName || $.UserName2} 已恢复,自动启用成功!\n祝您挂机愉快...`, `${$.UserName2}`);
|
|
||||||
}
|
|
||||||
console.log(`京东账号${$.index} : ${$.nickName || $.UserName2} 已恢复,自动启用成功!\n`);
|
|
||||||
TempEnableMessage = ReturnMessageTitle + ` (自动启用成功!)\n`;
|
|
||||||
TempSuccessMessage = ReturnMessageTitle + ` (自动启用成功!)\n`;
|
|
||||||
} else {
|
|
||||||
if ($.isNode() && WP_APP_TOKEN_ONE) {
|
|
||||||
await notify.sendNotifybyWxPucher(`${$.name}`, `京东账号: ${$.nickName || $.UserName2} 已恢复,但自动启用失败!\n请联系管理员处理...`, `${$.UserName2}`);
|
|
||||||
}
|
|
||||||
console.log(`京东账号${$.index} : ${$.nickName || $.UserName2} 已恢复,但自动启用失败!\n`);
|
|
||||||
TempEnableMessage = ReturnMessageTitle + ` (自动启用失败!)\n`;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
console.log(`京东账号${$.index} : ${$.nickName || $.UserName2} 已恢复,可手动启用!\n`);
|
|
||||||
TempEnableMessage = ReturnMessageTitle + ` 已恢复,可手动启用.\n`;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
console.log(`京东账号${$.index} : ${$.nickName || $.UserName2} 状态正常!\n`);
|
|
||||||
TempSuccessMessage = ReturnMessageTitle + `\n`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (userIndex2 != -1) {
|
|
||||||
ErrorMessageGp2 += TempErrorMessage;
|
|
||||||
SuccessMessageGp2 += TempSuccessMessage;
|
|
||||||
DisableMessageGp2 += TempDisableMessage;
|
|
||||||
EnableMessageGp2 += TempEnableMessage;
|
|
||||||
OErrorMessageGp2 += TempOErrorMessage;
|
|
||||||
}
|
|
||||||
if (userIndex3 != -1) {
|
|
||||||
ErrorMessageGp3 += TempErrorMessage;
|
|
||||||
SuccessMessageGp3 += TempSuccessMessage;
|
|
||||||
DisableMessageGp3 += TempDisableMessage;
|
|
||||||
EnableMessageGp3 += TempEnableMessage;
|
|
||||||
OErrorMessageGp3 += TempOErrorMessage;
|
|
||||||
}
|
|
||||||
if (userIndex4 != -1) {
|
|
||||||
ErrorMessageGp4 += TempErrorMessage;
|
|
||||||
SuccessMessageGp4 += TempSuccessMessage;
|
|
||||||
DisableMessageGp4 += TempDisableMessage;
|
|
||||||
EnableMessageGp4 += TempEnableMessage;
|
|
||||||
OErrorMessageGp4 += TempOErrorMessage;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (userIndex4 == -1 && userIndex2 == -1 && userIndex3 == -1) {
|
|
||||||
ErrorMessage += TempErrorMessage;
|
|
||||||
SuccessMessage += TempSuccessMessage;
|
|
||||||
DisableMessage += TempDisableMessage;
|
|
||||||
EnableMessage += TempEnableMessage;
|
|
||||||
OErrorMessage += TempOErrorMessage;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
console.log(`等待2秒....... \n`);
|
|
||||||
await $.wait(2 * 1000)
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($.isNode()) {
|
|
||||||
if (MessageUserGp2) {
|
|
||||||
if (OErrorMessageGp2) {
|
|
||||||
allMessageGp2 += `👇👇👇👇👇检测出错账号👇👇👇👇👇\n` + OErrorMessageGp2 + `\n\n`;
|
|
||||||
}
|
|
||||||
if (DisableMessageGp2) {
|
|
||||||
allMessageGp2 += `👇👇👇👇👇自动禁用账号👇👇👇👇👇\n` + DisableMessageGp2 + `\n\n`;
|
|
||||||
}
|
|
||||||
if (EnableMessageGp2) {
|
|
||||||
if (CKAutoEnable == "true") {
|
|
||||||
allMessageGp2 += `👇👇👇👇👇自动启用账号👇👇👇👇👇\n` + EnableMessageGp2 + `\n\n`;
|
|
||||||
} else {
|
|
||||||
allMessageGp2 += `👇👇👇👇👇账号已恢复👇👇👇👇👇\n` + EnableMessageGp2 + `\n\n`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ErrorMessageGp2) {
|
|
||||||
allMessageGp2 += `👇👇👇👇👇失效账号👇👇👇👇👇\n` + ErrorMessageGp2 + `\n\n`;
|
|
||||||
} else {
|
|
||||||
allMessageGp2 += `👇👇👇👇👇失效账号👇👇👇👇👇\n 一个失效的都没有呢,羡慕啊...\n\n`;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ShowSuccess == "true" && SuccessMessage) {
|
|
||||||
allMessageGp2 += `👇👇👇👇👇有效账号👇👇👇👇👇\n` + SuccessMessageGp2 + `\n`;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (NoWarnError == "true") {
|
|
||||||
OErrorMessageGp2 = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($.isNode() && (EnableMessageGp2 || DisableMessageGp2 || OErrorMessageGp2 || CKAlwaysNotify == "true")) {
|
|
||||||
console.log("京东CK检测#2:");
|
|
||||||
console.log(allMessageGp2);
|
|
||||||
|
|
||||||
if (strAllNotify)
|
|
||||||
allMessageGp2 += `\n` + strAllNotify;
|
|
||||||
|
|
||||||
await notify.sendNotify("京东CK检测#2", `${allMessageGp2}`, {
|
|
||||||
url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean`
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (MessageUserGp3) {
|
|
||||||
if (OErrorMessageGp3) {
|
|
||||||
allMessageGp3 += `👇👇👇👇👇检测出错账号👇👇👇👇👇\n` + OErrorMessageGp3 + `\n\n`;
|
|
||||||
}
|
|
||||||
if (DisableMessageGp3) {
|
|
||||||
allMessageGp3 += `👇👇👇👇👇自动禁用账号👇👇👇👇👇\n` + DisableMessageGp3 + `\n\n`;
|
|
||||||
}
|
|
||||||
if (EnableMessageGp3) {
|
|
||||||
if (CKAutoEnable == "true") {
|
|
||||||
allMessageGp3 += `👇👇👇👇👇自动启用账号👇👇👇👇👇\n` + EnableMessageGp3 + `\n\n`;
|
|
||||||
} else {
|
|
||||||
allMessageGp3 += `👇👇👇👇👇账号已恢复👇👇👇👇👇\n` + EnableMessageGp3 + `\n\n`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ErrorMessageGp3) {
|
|
||||||
allMessageGp3 += `👇👇👇👇👇失效账号👇👇👇👇👇\n` + ErrorMessageGp3 + `\n\n`;
|
|
||||||
} else {
|
|
||||||
allMessageGp3 += `👇👇👇👇👇失效账号👇👇👇👇👇\n 一个失效的都没有呢,羡慕啊...\n\n`;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ShowSuccess == "true" && SuccessMessage) {
|
|
||||||
allMessageGp3 += `👇👇👇👇👇有效账号👇👇👇👇👇\n` + SuccessMessageGp3 + `\n`;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (NoWarnError == "true") {
|
|
||||||
OErrorMessageGp3 = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($.isNode() && (EnableMessageGp3 || DisableMessageGp3 || OErrorMessageGp3 || CKAlwaysNotify == "true")) {
|
|
||||||
console.log("京东CK检测#3:");
|
|
||||||
console.log(allMessageGp3);
|
|
||||||
if (strAllNotify)
|
|
||||||
allMessageGp3 += `\n` + strAllNotify;
|
|
||||||
|
|
||||||
await notify.sendNotify("京东CK检测#3", `${allMessageGp3}`, {
|
|
||||||
url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean`
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (MessageUserGp4) {
|
|
||||||
if (OErrorMessageGp4) {
|
|
||||||
allMessageGp4 += `👇👇👇👇👇检测出错账号👇👇👇👇👇\n` + OErrorMessageGp4 + `\n\n`;
|
|
||||||
}
|
|
||||||
if (DisableMessageGp4) {
|
|
||||||
allMessageGp4 += `👇👇👇👇👇自动禁用账号👇👇👇👇👇\n` + DisableMessageGp4 + `\n\n`;
|
|
||||||
}
|
|
||||||
if (EnableMessageGp4) {
|
|
||||||
if (CKAutoEnable == "true") {
|
|
||||||
allMessageGp4 += `👇👇👇👇👇自动启用账号👇👇👇👇👇\n` + EnableMessageGp4 + `\n\n`;
|
|
||||||
} else {
|
|
||||||
allMessageGp4 += `👇👇👇👇👇账号已恢复👇👇👇👇👇\n` + EnableMessageGp4 + `\n\n`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ErrorMessageGp4) {
|
|
||||||
allMessageGp4 += `👇👇👇👇👇失效账号👇👇👇👇👇\n` + ErrorMessageGp4 + `\n\n`;
|
|
||||||
} else {
|
|
||||||
allMessageGp4 += `👇👇👇👇👇失效账号👇👇👇👇👇\n 一个失效的都没有呢,羡慕啊...\n\n`;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ShowSuccess == "true" && SuccessMessage) {
|
|
||||||
allMessageGp4 += `👇👇👇👇👇有效账号👇👇👇👇👇\n` + SuccessMessageGp4 + `\n`;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (NoWarnError == "true") {
|
|
||||||
OErrorMessageGp4 = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($.isNode() && (EnableMessageGp4 || DisableMessageGp4 || OErrorMessageGp4 || CKAlwaysNotify == "true")) {
|
|
||||||
console.log("京东CK检测#4:");
|
|
||||||
console.log(allMessageGp4);
|
|
||||||
if (strAllNotify)
|
|
||||||
allMessageGp4 += `\n` + strAllNotify;
|
|
||||||
|
|
||||||
await notify.sendNotify("京东CK检测#4", `${allMessageGp4}`, {
|
|
||||||
url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean`
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (OErrorMessage) {
|
|
||||||
allMessage += `👇👇👇👇👇检测出错账号👇👇👇👇👇\n` + OErrorMessage + `\n\n`;
|
|
||||||
}
|
|
||||||
if (DisableMessage) {
|
|
||||||
allMessage += `👇👇👇👇👇自动禁用账号👇👇👇👇👇\n` + DisableMessage + `\n\n`;
|
|
||||||
}
|
|
||||||
if (EnableMessage) {
|
|
||||||
if (CKAutoEnable == "true") {
|
|
||||||
allMessage += `👇👇👇👇👇自动启用账号👇👇👇👇👇\n` + EnableMessage + `\n\n`;
|
|
||||||
} else {
|
|
||||||
allMessage += `👇👇👇👇👇账号已恢复👇👇👇👇👇\n` + EnableMessage + `\n\n`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ErrorMessage) {
|
|
||||||
allMessage += `👇👇👇👇👇失效账号👇👇👇👇👇\n` + ErrorMessage + `\n\n`;
|
|
||||||
} else {
|
|
||||||
allMessage += `👇👇👇👇👇失效账号👇👇👇👇👇\n 一个失效的都没有呢,羡慕啊...\n\n`;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ShowSuccess == "true" && SuccessMessage) {
|
|
||||||
allMessage += `👇👇👇👇👇有效账号👇👇👇👇👇\n` + SuccessMessage + `\n`;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (NoWarnError == "true") {
|
|
||||||
OErrorMessage = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($.isNode() && (EnableMessage || DisableMessage || OErrorMessage || CKAlwaysNotify == "true")) {
|
|
||||||
console.log("京东CK检测:");
|
|
||||||
console.log(allMessage);
|
|
||||||
if (strAllNotify)
|
|
||||||
allMessage += `\n` + strAllNotify;
|
|
||||||
|
|
||||||
await notify.sendNotify(`${$.name}`, `${allMessage}`, {
|
|
||||||
url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean`
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
})()
|
|
||||||
.catch((e) => $.logErr(e))
|
|
||||||
.finally(() => $.done())
|
|
||||||
|
|
||||||
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)
|
|
||||||
$.nickName = decodeURIComponent($.UserName);
|
|
||||||
$.NoReturn = `${$.nickName} :` + `${JSON.stringify(err)}\n`;
|
|
||||||
} else {
|
|
||||||
if (data) {
|
|
||||||
data = JSON.parse(data);
|
|
||||||
if (data['retcode'] === "1001") {
|
|
||||||
$.isLogin = false; //cookie过期
|
|
||||||
$.nickName = decodeURIComponent($.UserName);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) {
|
|
||||||
$.nickName = (data.data.userInfo.baseInfo.nickname);
|
|
||||||
} else {
|
|
||||||
$.nickName = decodeURIComponent($.UserName);
|
|
||||||
console.log("Debug Code:" + data['retcode']);
|
|
||||||
$.NoReturn = `${$.nickName} :` + `服务器返回未知状态,不做变动\n`;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$.nickName = decodeURIComponent($.UserName);
|
|
||||||
$.log('京东服务器返回空数据');
|
|
||||||
$.NoReturn = `${$.nickName} :` + `服务器返回空数据,不做变动\n`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
$.nickName = decodeURIComponent($.UserName);
|
|
||||||
$.logErr(e)
|
|
||||||
$.NoReturn = `${$.nickName} : 检测出错,不做变动\n`;
|
|
||||||
}
|
|
||||||
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 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)
|
|
||||||
}
|
|
||||||
550
jd_CkSeq.js
@ -1,550 +0,0 @@
|
|||||||
/*
|
|
||||||
cron "0 0 * * *" jd_CheckCkSeq.js, tag:CK顺序调试工具by-ccwav
|
|
||||||
*/
|
|
||||||
const $ = new Env("CK顺序调试工具");
|
|
||||||
const {
|
|
||||||
getEnvs
|
|
||||||
} = require('./ql');
|
|
||||||
const notify = $.isNode() ? require('./sendNotify') : '';
|
|
||||||
const jdCookieNode = $.isNode() ? require("./jdCookie.js") : "";
|
|
||||||
let cookiesArr = [];
|
|
||||||
if ($.isNode()) {
|
|
||||||
Object.keys(jdCookieNode).forEach((item) => {
|
|
||||||
cookiesArr.push(jdCookieNode[item])
|
|
||||||
})
|
|
||||||
}
|
|
||||||
let WP_APP_TOKEN_ONE = "";
|
|
||||||
if ($.isNode()) {
|
|
||||||
if (process.env.WP_APP_TOKEN_ONE) {
|
|
||||||
WP_APP_TOKEN_ONE = process.env.WP_APP_TOKEN_ONE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let arrCkPtPin = [];
|
|
||||||
let arrEnvPtPin = [];
|
|
||||||
let arrEnvStatus = [];
|
|
||||||
let arrEnvOnebyOne = [];
|
|
||||||
let strCk = "";
|
|
||||||
let strNoFoundCk = "";
|
|
||||||
let strMessage = "";
|
|
||||||
let strNotify = "";
|
|
||||||
if ($.isNode() && process.env.SEQCK_DisableCKNOTIFY) {
|
|
||||||
strNotify=process.env.SEQCK_DisableCKNOTIFY;
|
|
||||||
console.log(`检测到设定了公告,禁用的CK将推送信息...`);
|
|
||||||
strNotify = `【✨✨✨✨公告✨✨✨✨】\n`+strNotify;
|
|
||||||
console.log(strNotify+"\n");
|
|
||||||
}else{
|
|
||||||
WP_APP_TOKEN_ONE = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
const fs = require('fs');
|
|
||||||
let TempCKUid = [];
|
|
||||||
let strUidFile = '/ql/scripts/CK_WxPusherUid.json';
|
|
||||||
let UidFileexists = fs.existsSync(strUidFile);
|
|
||||||
if (UidFileexists) {
|
|
||||||
console.log("检测到一对一Uid文件WxPusherUid.json,载入...");
|
|
||||||
TempCKUid = fs.readFileSync(strUidFile, 'utf-8');
|
|
||||||
if (TempCKUid) {
|
|
||||||
TempCKUid = TempCKUid.toString();
|
|
||||||
TempCKUid = JSON.parse(TempCKUid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
!(async() => {
|
|
||||||
|
|
||||||
const envs = await getEnvs();
|
|
||||||
for (let i = 0; i < envs.length; i++) {
|
|
||||||
if (envs[i].value) {
|
|
||||||
var tempptpin = decodeURIComponent(envs[i].value.match(/pt_pin=([^; ]+)(?=;?)/) && envs[i].value.match(/pt_pin=([^; ]+)(?=;?)/)[1]);
|
|
||||||
arrEnvPtPin.push(tempptpin);
|
|
||||||
arrEnvStatus.push(envs[i].status);
|
|
||||||
var struuid=getuuid(envs[i].remarks,tempptpin)
|
|
||||||
arrEnvOnebyOne.push(struuid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (let i = 0; i < cookiesArr.length; i++) {
|
|
||||||
if (cookiesArr[i]) {
|
|
||||||
cookie = cookiesArr[i];
|
|
||||||
var tempptpin = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]);
|
|
||||||
var intSeq = inArray(tempptpin, arrEnvPtPin);
|
|
||||||
if (intSeq != -1) {
|
|
||||||
arrCkPtPin.push(tempptpin);
|
|
||||||
strCk += "【"+(intSeq+1) + "】" + tempptpin ;
|
|
||||||
if (arrEnvOnebyOne[intSeq]) {
|
|
||||||
strCk += "(已启用一对一推送)"
|
|
||||||
}
|
|
||||||
strCk +="\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (let i = 0; i < arrEnvPtPin.length; i++) {
|
|
||||||
var tempptpin = arrEnvPtPin[i];
|
|
||||||
var intSeq = inArray(tempptpin, arrCkPtPin);
|
|
||||||
if (intSeq == -1) {
|
|
||||||
strNoFoundCk += "【" + (i + 1) + "】" + tempptpin;
|
|
||||||
if (arrEnvStatus[i] == 1) {
|
|
||||||
strNoFoundCk += "(已禁用)"
|
|
||||||
if ($.isNode() && WP_APP_TOKEN_ONE) {
|
|
||||||
await notify.sendNotifybyWxPucher("账号下线通知", strNotify, tempptpin);
|
|
||||||
await $.wait(1000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (arrEnvOnebyOne[i]) {
|
|
||||||
strNoFoundCk += "(已启用一对一推送)"
|
|
||||||
}
|
|
||||||
strNoFoundCk += "\n";
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (strNoFoundCk) {
|
|
||||||
console.log("没有出现在今日CK队列中的账号: \n" + strNoFoundCk);
|
|
||||||
strMessage+="没有出现在今日CK队列中的账号: \n" + strNoFoundCk;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("\n今日执行任务的账号顺序: \n" + strCk);
|
|
||||||
strMessage+="\n今日执行任务的账号顺序: \n" + strCk;
|
|
||||||
|
|
||||||
if ($.isNode()) {
|
|
||||||
await notify.sendNotify(`${$.name}`, strMessage);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
})()
|
|
||||||
.catch((e) => $.logErr(e))
|
|
||||||
.finally(() => $.done());
|
|
||||||
|
|
||||||
function inArray(search, array) {
|
|
||||||
var lnSeq = -1;
|
|
||||||
for (let i = 0; i < array.length; i++) {
|
|
||||||
if (array[i] == search) {
|
|
||||||
lnSeq = i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return parseInt(lnSeq);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
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 && 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 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)
|
|
||||||
}
|
|
||||||
1965
jd_DailyBonus_Mod.js
@ -1,521 +0,0 @@
|
|||||||
/*
|
|
||||||
cron "30 10 * * *" jd_UpdateUIDtoRemark.js, tag:Uid迁移工具
|
|
||||||
*/
|
|
||||||
|
|
||||||
const $ = new Env('WxPusherUid迁移工具');
|
|
||||||
const notify = $.isNode() ? require('./sendNotify') : '';
|
|
||||||
//Node.js用户请在jdCookie.js处填写京东ck;
|
|
||||||
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
|
|
||||||
const got = require('got');
|
|
||||||
const {
|
|
||||||
getEnvs,
|
|
||||||
getEnvById,
|
|
||||||
DisableCk,
|
|
||||||
EnableCk,
|
|
||||||
updateEnv,
|
|
||||||
updateEnv11,
|
|
||||||
getstatus
|
|
||||||
} = require('./ql');
|
|
||||||
|
|
||||||
let strUidFile = '/ql/scripts/CK_WxPusherUid.json';
|
|
||||||
const fs = require('fs');
|
|
||||||
let UidFileexists = fs.existsSync(strUidFile);
|
|
||||||
let TempCKUid = [];
|
|
||||||
if (UidFileexists) {
|
|
||||||
console.log("检测到WxPusherUid文件,载入...");
|
|
||||||
TempCKUid = fs.readFileSync(strUidFile, 'utf-8');
|
|
||||||
if (TempCKUid) {
|
|
||||||
TempCKUid = TempCKUid.toString();
|
|
||||||
TempCKUid = JSON.parse(TempCKUid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
!(async() => {
|
|
||||||
const envs = await getEnvs();
|
|
||||||
if (!envs[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;
|
|
||||||
}
|
|
||||||
var struid = "";
|
|
||||||
var strRemark = "";
|
|
||||||
for (let i = 0; i < envs.length; i++) {
|
|
||||||
if (envs[i].value) {
|
|
||||||
var tempid = 0;
|
|
||||||
if(envs[i]._id)
|
|
||||||
tempid = envs[i]._id;
|
|
||||||
if(envs[i].id)
|
|
||||||
tempid = envs[i].id;
|
|
||||||
|
|
||||||
cookie = await getEnvById(tempid);
|
|
||||||
|
|
||||||
if(!cookie)
|
|
||||||
continue;
|
|
||||||
$.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]);
|
|
||||||
$.index = i + 1;
|
|
||||||
console.log(`\n**********检测【京东账号${$.index}】${$.UserName}**********\n`);
|
|
||||||
strRemark = envs[i].remarks;
|
|
||||||
struid = getuuid(strRemark, $.UserName);
|
|
||||||
if (struid) {
|
|
||||||
//这是为了处理ninjia的remark格式
|
|
||||||
strRemark = strRemark.replace("remark=", "");
|
|
||||||
strRemark = strRemark.replace(";", "");
|
|
||||||
|
|
||||||
var Tempindex = strRemark.indexOf("@@");
|
|
||||||
if (Tempindex != -1) {
|
|
||||||
strRemark = strRemark + "@@" + struid;
|
|
||||||
} else {
|
|
||||||
var DateTimestamp = new Date(envs[i].timestamp);
|
|
||||||
strRemark = strRemark + "@@" + DateTimestamp.getTime() + "@@" + struid;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (envs[i]._id) {
|
|
||||||
var updateEnvBody = await updateEnv(cookie, envs[i]._id, strRemark);
|
|
||||||
|
|
||||||
if (updateEnvBody.code == 200)
|
|
||||||
console.log("更新Remark成功!");
|
|
||||||
else
|
|
||||||
console.log("更新Remark失败!");
|
|
||||||
}
|
|
||||||
if (envs[i].id) {
|
|
||||||
var updateEnvBody = await updateEnv11(cookie, envs[i].id, strRemark);
|
|
||||||
|
|
||||||
if (updateEnvBody.code == 200)
|
|
||||||
console.log("新版青龙更新Remark成功!");
|
|
||||||
else
|
|
||||||
console.log("新版青龙更新Remark失败!");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
})()
|
|
||||||
.catch((e) => $.logErr(e))
|
|
||||||
.finally(() => $.done())
|
|
||||||
|
|
||||||
function getuuid(strRemark, PtPin) {
|
|
||||||
var strTempuuid = "";
|
|
||||||
var strUid = "";
|
|
||||||
if (strRemark) {
|
|
||||||
var Tempindex = strRemark.indexOf("@@");
|
|
||||||
if (Tempindex != -1) {
|
|
||||||
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 && TempCKUid) {
|
|
||||||
console.log(`查询uid`);
|
|
||||||
for (let j = 0; j < TempCKUid.length; j++) {
|
|
||||||
if (PtPin == decodeURIComponent(TempCKUid[j].pt_pin)) {
|
|
||||||
strUid = TempCKUid[j].Uid;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
console.log(`uid:`+strUid);
|
|
||||||
return strUid;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 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)
|
|
||||||
}
|
|
||||||
@ -1,89 +0,0 @@
|
|||||||
/**
|
|
||||||
* select name, bean from bean_change where date=today and amount > 0 group by name order by amount desc
|
|
||||||
*/
|
|
||||||
|
|
||||||
const {JDHelloWorld} = require("./TS_JDHelloWorld")
|
|
||||||
const {getDate} = require("date-fns");
|
|
||||||
const ConsoleGrid = require("console-grid");
|
|
||||||
|
|
||||||
class Aggregate_Bean extends JDHelloWorld {
|
|
||||||
constructor() {
|
|
||||||
super();
|
|
||||||
}
|
|
||||||
|
|
||||||
async init() {
|
|
||||||
await this.run(new Aggregate_Bean())
|
|
||||||
}
|
|
||||||
|
|
||||||
async main(user) {
|
|
||||||
let p = 1, arr = [], aggregation = {}, flag = true, sum = 0, len = 0
|
|
||||||
while (p && flag) {
|
|
||||||
try {
|
|
||||||
let res = await this.post('https://api.m.jd.com/client.action?functionId=getJingBeanBalanceDetail',
|
|
||||||
`body=${encodeURIComponent(JSON.stringify({"pageSize": "20", "page": p.toString()}))}&appid=ld`, {
|
|
||||||
'Host': 'api.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",
|
|
||||||
'Cookie': user.cookie,
|
|
||||||
})
|
|
||||||
let today = getDate(new Date())
|
|
||||||
// console.log(p, res['detailList'].length)
|
|
||||||
for (let t of res['detailList']) {
|
|
||||||
let amount = parseInt(t.amount), date = getDate(new Date(t.date))
|
|
||||||
if (date !== today) {
|
|
||||||
flag = false
|
|
||||||
break
|
|
||||||
}
|
|
||||||
if (amount > 0) {
|
|
||||||
sum += amount
|
|
||||||
t['eventMassage'].length > len ? len = t['eventMassage'].length : null
|
|
||||||
if (t['eventMassage'] in aggregation) {
|
|
||||||
aggregation[t['eventMassage']] += amount
|
|
||||||
} else {
|
|
||||||
aggregation[t['eventMassage']] = amount
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
await this.wait(2000)
|
|
||||||
if (p < 20) {
|
|
||||||
p++
|
|
||||||
} else {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
console.log('error', e)
|
|
||||||
await this.wait(2000)
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (let k in aggregation) {
|
|
||||||
arr.push({
|
|
||||||
'name': k,
|
|
||||||
'amount': aggregation[k]
|
|
||||||
})
|
|
||||||
}
|
|
||||||
arr.sort((a, b) => {
|
|
||||||
return b.amount - a.amount
|
|
||||||
})
|
|
||||||
arr = [...arr, {name: '合计', amount: sum}]
|
|
||||||
const consoleGrid = new ConsoleGrid();
|
|
||||||
const data = {
|
|
||||||
columns: [{
|
|
||||||
id: "name",
|
|
||||||
name: `Name`,
|
|
||||||
type: "string",
|
|
||||||
maxWidth: len * 2 + 3,
|
|
||||||
}, {
|
|
||||||
id: "amount",
|
|
||||||
type: "number",
|
|
||||||
name: "Amount",
|
|
||||||
minWidth: 5,
|
|
||||||
align: "right"
|
|
||||||
}],
|
|
||||||
rows: arr
|
|
||||||
};
|
|
||||||
consoleGrid.render(data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
new Aggregate_Bean().init().then()
|
|
||||||