Compare commits
319 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
74d17c0b8e | ||
|
|
16380b4113 | ||
|
|
a26d7581d9 | ||
|
|
9476d8c7c9 | ||
|
|
76af5516ec | ||
|
|
263eab8752 | ||
|
|
1ab993fa70 | ||
|
|
4f68ebb59d | ||
|
|
aad95f2d19 | ||
|
|
e1241e7a09 | ||
|
|
fbe699fb3b | ||
|
|
f27516cde1 | ||
|
|
f1735415ce | ||
|
|
1a5832ba8f | ||
|
|
da5246ce49 | ||
|
|
6bb7b30c66 | ||
|
|
716d8bbd0d | ||
|
|
f558fede4d | ||
|
|
5097688be6 | ||
|
|
f91059544a | ||
|
|
e82e2cc80f | ||
|
|
02a3f47910 | ||
|
|
78c540c2e1 | ||
|
|
834b355bfd | ||
|
|
26e11ed051 | ||
|
|
0ec9617d1c | ||
|
|
fbda31aca1 | ||
|
|
f7b1571f7b | ||
|
|
ce1ac03f0e | ||
|
|
8c9075c168 | ||
|
|
bebd433b74 | ||
|
|
74a9809cf5 | ||
|
|
a5933c3be2 | ||
|
|
2dc75f9255 | ||
|
|
f950b2e410 | ||
|
|
4557cd1aa9 | ||
|
|
58890967a0 | ||
|
|
abf129c668 | ||
|
|
cfaaa46d01 | ||
|
|
8a29a82ff7 | ||
|
|
1c49651ec1 | ||
|
|
a587227814 | ||
|
|
34dd2f4a08 | ||
|
|
d804ba0ccc | ||
|
|
9d7daaea09 | ||
|
|
7c78ff8346 | ||
|
|
a78125fb64 | ||
|
|
476cd43194 | ||
|
|
e37b894bc4 | ||
|
|
c8696aeb95 | ||
|
|
0cc317e383 | ||
|
|
6259573fa3 | ||
|
|
95aa9ccfa8 | ||
|
|
c8929300b5 | ||
|
|
85dd31d5f7 | ||
|
|
7bf2236215 | ||
|
|
21194404c4 | ||
|
|
c868dde78c | ||
|
|
8e955156e3 | ||
|
|
839758bfc5 | ||
|
|
ce7d6b81eb | ||
|
|
abf18bce1d | ||
|
|
a76a0ab423 | ||
|
|
b20c45601c | ||
|
|
69d9fd7eb5 | ||
|
|
56bdb0b983 | ||
|
|
33205cdd02 | ||
|
|
bc552442c3 | ||
|
|
1814cab38b | ||
|
|
296fbdea7d | ||
|
|
8d9ed4b7ce | ||
|
|
889bc6c600 | ||
|
|
5714a4091d | ||
|
|
df0b48fe3d | ||
|
|
f3994c95a6 | ||
|
|
08538349b3 | ||
|
|
db78de1c01 | ||
|
|
74079e28c9 | ||
|
|
e2c63d3e49 | ||
|
|
4e278f39b9 | ||
|
|
93c7360810 | ||
|
|
c0b5600298 | ||
|
|
d2241a01be | ||
|
|
a177db85f0 | ||
|
|
819ab67af6 | ||
|
|
72021b0016 | ||
|
|
8ce7efcb4b | ||
|
|
437509bdd0 | ||
|
|
1b4c15175a | ||
|
|
d835674cde | ||
|
|
8f75715bbe | ||
|
|
0d168b5864 | ||
|
|
05495e3b16 | ||
|
|
174eddc36c | ||
|
|
7659b86b0b | ||
|
|
279f7cdd55 | ||
|
|
33126a06f2 | ||
|
|
db86f7e125 | ||
|
|
212679c695 | ||
|
|
3ca4be5710 | ||
|
|
286b4f00ca | ||
|
|
6fd5e65328 | ||
|
|
956de7602b | ||
|
|
9c3da5e2a3 | ||
|
|
ae21732436 | ||
|
|
f32ad69f0e | ||
|
|
3a7858903a | ||
|
|
e0f32fa681 | ||
|
|
97ee8aefac | ||
|
|
26e48ff324 | ||
|
|
b907fe0619 | ||
|
|
375dcf4a0f | ||
|
|
ddab85055b | ||
|
|
f40f6ceceb | ||
|
|
60c14bca6b | ||
|
|
2f4d3d0e34 | ||
|
|
ef8bb16da7 | ||
|
|
daf3dcf079 | ||
|
|
f532970c0f | ||
|
|
014c0030c0 | ||
|
|
342a4562f2 | ||
|
|
264adcd1cf | ||
|
|
5b6aa34188 | ||
|
|
78b7774267 | ||
|
|
d1df7368c7 | ||
|
|
5f5ceabf81 | ||
|
|
bebe8c9e0d | ||
|
|
67395c68ca | ||
|
|
0e785c73ff | ||
|
|
5658c5bc74 | ||
|
|
00840edf3a | ||
|
|
6eb8823114 | ||
|
|
9cbfc83158 | ||
|
|
defd534b8d | ||
|
|
5217ea4644 | ||
|
|
7dc98e1c19 | ||
|
|
3bc5ff6cd4 | ||
|
|
b10e22d4b8 | ||
|
|
2753494bda | ||
|
|
aae7cfc99d | ||
|
|
1eac68c9e1 | ||
|
|
af20c42655 | ||
|
|
305a355149 | ||
|
|
42a79c5296 | ||
|
|
c7c056ea59 | ||
|
|
a4d8f16936 | ||
|
|
09e0965c59 | ||
|
|
aacb76d582 | ||
|
|
76a5cc48c8 | ||
|
|
2d241c9a3a | ||
|
|
6b6053d75b | ||
|
|
e2a6ac79f6 | ||
|
|
851d7118f5 | ||
|
|
fb3459517c | ||
|
|
252a3578f2 | ||
|
|
1d2b160926 | ||
|
|
1a6146c594 | ||
|
|
4ee1fb3322 | ||
|
|
80df86d55e | ||
|
|
797accdca7 | ||
|
|
5a09f0222a | ||
|
|
4c9da15585 | ||
|
|
cfb748e0c1 | ||
|
|
bcdbb5752e | ||
|
|
c5093d5681 | ||
|
|
fe38570c29 | ||
|
|
ccf613e17e | ||
|
|
3a4f0000cc | ||
|
|
726e911ef6 | ||
|
|
5057bca5e3 | ||
|
|
7dec149dd4 | ||
|
|
701e369f4f | ||
|
|
b63b5a15b1 | ||
|
|
5c77743ffb | ||
|
|
3a956ba27c | ||
|
|
a0a1f61a1a | ||
|
|
8a826c3aa5 | ||
|
|
e3fbc9117c | ||
|
|
e28600e100 | ||
|
|
301dab550d | ||
|
|
f6068119e8 | ||
|
|
755a9ef01f | ||
|
|
49188637db | ||
|
|
b36637ed2f | ||
|
|
f2dd4b3da0 | ||
|
|
f442b8bba3 | ||
|
|
0d0e61d3f5 | ||
|
|
e55f57afad | ||
|
|
7d2fe02410 | ||
|
|
e5c32656ed | ||
|
|
c401366b44 | ||
|
|
9218e0930f | ||
|
|
e4307c5ddf | ||
|
|
41e29614af | ||
|
|
7f31a33670 | ||
|
|
eb77931e7a | ||
|
|
83c30c7c2f | ||
|
|
628ff8f727 | ||
|
|
aba67a9f8f | ||
|
|
eeb1ad5279 | ||
|
|
895af135ea | ||
|
|
3795a574bb | ||
|
|
12b399af90 | ||
|
|
4fc2975997 | ||
|
|
bb79d93bc3 | ||
|
|
1f265ae986 | ||
|
|
ece126edd3 | ||
|
|
69f0490dbe | ||
|
|
8528faac7b | ||
|
|
d4a2f5186c | ||
|
|
2239dd3b0e | ||
|
|
c66dff065b | ||
|
|
5265d9cd30 | ||
|
|
84d1e54bea | ||
|
|
0b436ad078 | ||
|
|
88d432ae1f | ||
|
|
50a9afbf52 | ||
|
|
15f7645c88 | ||
|
|
d4ce4750f7 | ||
|
|
2cd36884f0 | ||
|
|
4af1ca3c23 | ||
|
|
5ac38600df | ||
|
|
2d4f0b3e3c | ||
|
|
e1d680a858 | ||
|
|
b485afa907 | ||
|
|
51eaf50a23 | ||
|
|
f3dac18672 | ||
|
|
885498b2db | ||
|
|
a786f6e330 | ||
|
|
7478b1386e | ||
|
|
f3f5c595bb | ||
|
|
25fe17e584 | ||
|
|
86f6470a3c | ||
|
|
c6aa70f401 | ||
|
|
5754bc115a | ||
|
|
1395f13a84 | ||
|
|
93ba611ae6 | ||
|
|
8f0991cc70 | ||
|
|
9616813a55 | ||
|
|
a9904041d6 | ||
|
|
72ab52dbcb | ||
|
|
f1d37efce9 | ||
|
|
ceabcaf8d7 | ||
|
|
a9c7459ff6 | ||
|
|
7c7b1f377c | ||
|
|
3588f29117 | ||
|
|
739a432065 | ||
|
|
4a9d0dc092 | ||
|
|
277454bd68 | ||
|
|
d7faf27758 | ||
|
|
a62573029e | ||
|
|
de8805917a | ||
|
|
d0a36625a9 | ||
|
|
a4cbe137a3 | ||
|
|
9c25eb9956 | ||
|
|
a0a5f34a9c | ||
|
|
ae222ee761 | ||
|
|
7a138e96cf | ||
|
|
26e6786573 | ||
|
|
072300dc0b | ||
|
|
bf15051454 | ||
|
|
e5ce2264f7 | ||
|
|
7dc0b7ea68 | ||
|
|
abfd2420a9 | ||
|
|
9a51614ca1 | ||
|
|
8704beeaf7 | ||
|
|
4d241680da | ||
|
|
3a18d35aad | ||
|
|
95f1d4ba79 | ||
|
|
5f73b0bb46 | ||
|
|
510d197137 | ||
|
|
8ebffa8ff7 | ||
|
|
01e001a201 | ||
|
|
aa6e088da4 | ||
|
|
40470006d4 | ||
|
|
9747439d49 | ||
|
|
67b745fd8c | ||
|
|
8b2fdf6400 | ||
|
|
1ce009814b | ||
|
|
1a0cc92eed | ||
|
|
66a2a8430b | ||
|
|
ff72cc3a73 | ||
|
|
ea28e0d64e | ||
|
|
51ae1a43d1 | ||
|
|
89675e4b83 | ||
|
|
4aa516f250 | ||
|
|
4852f66467 | ||
|
|
89d9858c46 | ||
|
|
b18acde779 | ||
|
|
93088ebb1a | ||
|
|
e1ff4d82de | ||
|
|
e964dd24aa | ||
|
|
317b44d610 | ||
|
|
6c59e024b5 | ||
|
|
fadad5e5f5 | ||
|
|
c28d500db1 | ||
|
|
8aff914d9c | ||
|
|
034203992d | ||
|
|
95c575c797 | ||
|
|
b99e82337a | ||
|
|
0a0634bc14 | ||
|
|
d853c821b8 | ||
|
|
fefea4ddd7 | ||
|
|
d0d0d91591 | ||
|
|
715cb020be | ||
|
|
b04c4342c0 | ||
|
|
d98f415f79 | ||
|
|
ceccda0a3f | ||
|
|
58391846f2 | ||
|
|
4b3b6cd06b | ||
|
|
9b15cde60c | ||
|
|
aba43b2218 | ||
|
|
fae0e1ef98 | ||
|
|
a73a1bde61 | ||
|
|
3aea77caec | ||
|
|
66ed794e19 | ||
|
|
bbb05d6f45 | ||
|
|
fa0a46f118 | ||
|
|
39f8ed28d2 |
1930
JD_DailyBonus.js
1930
JD_DailyBonus.js
File diff suppressed because it is too large
Load Diff
35
TS_JDHelloWorld.d.ts
vendored
Normal file
35
TS_JDHelloWorld.d.ts
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
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
TS_JDHelloWorld.js
Normal file
1
TS_JDHelloWorld.js
Normal file
File diff suppressed because one or more lines are too long
316
TS_USER_AGENTS.ts
Normal file
316
TS_USER_AGENTS.ts
Normal file
@ -0,0 +1,316 @@
|
|||||||
|
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
|
||||||
|
}
|
||||||
149
USER_AGENTS.js
149
USER_AGENTS.js
@ -1,40 +1,117 @@
|
|||||||
const USER_AGENTS = [
|
const USER_AGENTS = [
|
||||||
"jdapp;android;10.1.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; ONEPLUS A5010 Build/QKQ1.191014.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36",
|
"jdapp;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.0;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
"jdapp;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.0;9;network/4g;Mozilla/5.0 (Linux; Android 9; Mi Note 3 Build/PKQ1.181007.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045131 Mobile Safari/537.36",
|
"jdapp;android;10.1.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.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; GM1910 Build/QKQ1.190716.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36",
|
"jdapp;android;10.1.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.0;9;network/wifi;Mozilla/5.0 (Linux; Android 9; 16T Build/PKQ1.190616.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36",
|
"jdapp;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.0;13.6;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
"jdapp;iPhone;10.1.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.0;13.6;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
"jdapp;iPhone;10.1.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.0;13.5;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
"jdapp;iPhone;10.1.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.0;14.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
"jdapp;iPhone;10.1.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.0;13.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
"jdapp;iPhone;10.1.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.0;13.7;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
"jdapp;iPhone;10.1.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.0;14.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
"jdapp;iPhone;10.1.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.0;13.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
"jdapp;iPhone;10.1.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.0;13.4;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
"jdapp;iPhone;10.1.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.0;14.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
"jdapp;iPhone;10.1.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.0;9;network/wifi;Mozilla/5.0 (Linux; Android 9; MI 6 Build/PKQ1.190118.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36",
|
"jdapp;android;10.1.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.0;11;network/wifi;Mozilla/5.0 (Linux; Android 11; Redmi K30 5G Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045511 Mobile Safari/537.36",
|
"jdapp;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.0;11.4;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 11_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15F79",
|
"jdapp;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.0;10;;network/wifi;Mozilla/5.0 (Linux; Android 10; M2006J10C Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36",
|
"jdapp;android;10.1.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.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; M2006J10C Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36",
|
"jdapp;android;10.1.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.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; ONEPLUS A6000 Build/QKQ1.190716.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045224 Mobile Safari/537.36",
|
"jdapp;android;10.1.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.0;9;network/wifi;Mozilla/5.0 (Linux; Android 9; MHA-AL00 Build/HUAWEIMHA-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36",
|
"jdapp;android;10.1.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.0;8.1.0;network/wifi;Mozilla/5.0 (Linux; Android 8.1.0; 16 X Build/OPM1.171019.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36",
|
"jdapp;android;10.1.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.0;8.0.0;network/wifi;Mozilla/5.0 (Linux; Android 8.0.0; HTC U-3w Build/OPR6.170623.013; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36",
|
"jdapp;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.0;14.0.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_0_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
"jdapp;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.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; LYA-AL00 Build/HUAWEILYA-AL00L; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36",
|
"jdapp;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.0;14.2;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
"jdapp;iPhone;10.1.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.0;14.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
"jdapp;iPhone;10.1.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.0;14.2;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
"jdapp;iPhone;10.1.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.0;8.1.0;network/wifi;Mozilla/5.0 (Linux; Android 8.1.0; MI 8 Build/OPM1.171019.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045131 Mobile Safari/537.36",
|
"jdapp;android;10.1.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.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; Redmi K20 Pro Premium Edition Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045227 Mobile Safari/537.36",
|
"jdapp;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.0;14.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
"jdapp;iPhone;10.1.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.0;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
"jdapp;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.0;11;network/wifi;Mozilla/5.0 (Linux; Android 11; Redmi K20 Pro Premium Edition Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045513 Mobile Safari/537.36",
|
"jdapp;android;10.1.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.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045227 Mobile Safari/537.36",
|
"jdapp;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.0;14.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
"jdapp;iPhone;10.1.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',
|
||||||
]
|
]
|
||||||
/**
|
/**
|
||||||
* 生成随机数字
|
* 生成随机数字
|
||||||
|
|||||||
282
cleancart_activity.js
Normal file
282
cleancart_activity.js
Normal file
@ -0,0 +1,282 @@
|
|||||||
|
/*
|
||||||
|
|
||||||
|
*/
|
||||||
|
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
Normal file
116
depend.py
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
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("加载通知服务失败~")
|
||||||
@ -1,37 +0,0 @@
|
|||||||
FROM node:lts-alpine3.12
|
|
||||||
|
|
||||||
LABEL AUTHOR="none" \
|
|
||||||
VERSION=0.1.4
|
|
||||||
|
|
||||||
ARG KEY="-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn\nNhAAAAAwEAAQAAAQEAvRQk2oQqLB01iVnJKrnI3tTfJyEHzc2ULVor4vBrKKWOum4dbTeT\ndNWL5aS+CJso7scJT3BRq5fYVZcz5ra0MLMdQyFL1DdwurmzkhPYbwcNrJrB8abEPJ8ltS\nMoa0X9ecmSepaQFedZOZ2YeT/6AAXY+cc6xcwyuRVQ2ZJ3YIMBrRuVkF6nYwLyBLFegzhu\nJJeU5o53kfpbTCirwK0h9ZsYwbNbXYbWuJHmtl5tEBf2Hz+5eCkigXRq8EhRZlSnXfhPr2\n32VCb1A/gav2/YEaMPSibuBCzqVMVruP5D625XkxMdBdLqLBGWt7bCas7/zH2bf+q3zac4\nLcIFhkC6XwAAA9BjE3IGYxNyBgAAAAdzc2gtcnNhAAABAQC9FCTahCosHTWJWckqucje1N\n8nIQfNzZQtWivi8GsopY66bh1tN5N01YvlpL4ImyjuxwlPcFGrl9hVlzPmtrQwsx1DIUvU\nN3C6ubOSE9hvBw2smsHxpsQ8nyW1IyhrRf15yZJ6lpAV51k5nZh5P/oABdj5xzrFzDK5FV\nDZkndggwGtG5WQXqdjAvIEsV6DOG4kl5TmjneR+ltMKKvArSH1mxjBs1tdhta4kea2Xm0Q\nF/YfP7l4KSKBdGrwSFFmVKdd+E+vbfZUJvUD+Bq/b9gRow9KJu4ELOpUxWu4/kPrbleTEx\n0F0uosEZa3tsJqzv/MfZt/6rfNpzgtwgWGQLpfAAAAAwEAAQAAAQEAnMKZt22CBWcGHuUI\nytqTNmPoy2kwLim2I0+yOQm43k88oUZwMT+1ilUOEoveXgY+DpGIH4twusI+wt+EUVDC3e\nlyZlixpLV+SeFyhrbbZ1nCtYrtJutroRMVUTNf7GhvucwsHGS9+tr+96y4YDZxkBlJBfVu\nvdUJbLfGe0xamvE114QaZdbmKmtkHaMQJOUC6EFJI4JmSNLJTxNAXKIi3TUrS7HnsO3Xfv\nhDHElzSEewIC1smwLahS6zi2uwP1ih4fGpJJbU6FF/jMvHf/yByHDtdcuacuTcU798qT0q\nAaYlgMd9zrLC1OHMgSDcoz9/NQTi2AXGAdo4N+mnxPTHcQAAAIB5XCz1vYVwJ8bKqBelf1\nw7OlN0QDM4AUdHdzTB/mVrpMmAnCKV20fyA441NzQZe/52fMASUgNT1dQbIWCtDU2v1cP6\ncG8uyhJOK+AaFeDJ6NIk//d7o73HNxR+gCCGacleuZSEU6075Or2HVGHWweRYF9hbmDzZb\nCLw6NsYaP2uAAAAIEA3t1BpGHHek4rXNjl6d2pI9Pyp/PCYM43344J+f6Ndg3kX+y03Mgu\n06o33etzyNuDTslyZzcYUQqPMBuycsEb+o5CZPtNh+1klAVE3aDeHZE5N5HrJW3fkD4EZw\nmOUWnRj1RT2TsLwixB21EHVm7fh8Kys1d2ULw54LVmtv4+O3cAAACBANkw7XZaZ/xObHC9\n1PlT6vyWg9qHAmnjixDhqmXnS5Iu8TaKXhbXZFg8gvLgduGxH/sGwSEB5D6sImyY+DW/OF\nbmIVC4hwDUbCsTMsmTTTgyESwmuQ++JCh6f2Ams1vDKbi+nOVyqRvCrAHtlpaqSfv8hkjK\npBBqa/rO5yyYmeJZAAAAFHJvb3RAbmFzLmV2aW5lLnByZXNzAQIDBAUG\n-----END OPENSSH PRIVATE KEY-----"
|
|
||||||
|
|
||||||
ENV DEFAULT_LIST_FILE=crontab_list.sh \
|
|
||||||
CUSTOM_LIST_MERGE_TYPE=append \
|
|
||||||
COOKIES_LIST=/scripts/logs/cookies.list \
|
|
||||||
REPO_URL=git@gitee.com:lxk0301/jd_scripts.git \
|
|
||||||
REPO_BRANCH=master
|
|
||||||
|
|
||||||
RUN set -ex \
|
|
||||||
&& apk update \
|
|
||||||
&& apk upgrade \
|
|
||||||
&& apk add --no-cache bash tzdata git moreutils curl jq openssh-client \
|
|
||||||
&& rm -rf /var/cache/apk/* \
|
|
||||||
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
|
|
||||||
&& echo "Asia/Shanghai" > /etc/timezone \
|
|
||||||
&& mkdir -p /root/.ssh \
|
|
||||||
&& echo -e $KEY > /root/.ssh/id_rsa \
|
|
||||||
&& chmod 600 /root/.ssh/id_rsa \
|
|
||||||
&& ssh-keyscan gitee.com > /root/.ssh/known_hosts \
|
|
||||||
&& git clone -b $REPO_BRANCH $REPO_URL /scripts \
|
|
||||||
&& cd /scripts \
|
|
||||||
&& mkdir logs \
|
|
||||||
&& npm config set registry https://registry.npm.taobao.org \
|
|
||||||
&& npm install \
|
|
||||||
&& cp /scripts/docker/docker_entrypoint.sh /usr/local/bin \
|
|
||||||
&& chmod +x /usr/local/bin/docker_entrypoint.sh
|
|
||||||
|
|
||||||
WORKDIR /scripts
|
|
||||||
|
|
||||||
ENTRYPOINT ["docker_entrypoint.sh"]
|
|
||||||
|
|
||||||
CMD [ "crond" ]
|
|
||||||
264
docker/Readme.md
264
docker/Readme.md
@ -1,264 +0,0 @@
|
|||||||

|
|
||||||
### Usage
|
|
||||||
```diff
|
|
||||||
+ 2021-03-21更新 增加bot交互,spnode指令,功能是否开启自动根据你的配置判断,详见 https://gitee.com/lxk0301/jd_docker/pulls/18
|
|
||||||
**bot交互启动前置条件为 配置telegram通知,并且未使用自己代理的 TG_API_HOST**
|
|
||||||
**spnode使用前置条件未启动bot交互** _(后续可能去掉该限制_
|
|
||||||
使用bot交互+spnode后 后续用户的cookie维护更新只需要更新logs/cookies.conf即可
|
|
||||||
使用bot交互+spnode后 后续执行脚本命令请使用spnode否者无法使用logs/cookies.conf的cookies执行脚本,定时任务也将自动替换为spnode命令执行
|
|
||||||
发送/spnode给bot获取可执行脚本的列表,选择对应的按钮执行。(拓展使用:运行指定路径脚本,例:/spnode /scripts/jd_818.js)
|
|
||||||
spnode功能概述示例
|
|
||||||
spnode conc /scripts/jd_bean_change.js 为每个cookie单独执行jd_bean_change脚本(伪并发
|
|
||||||
spnode 1 /scripts/jd_bean_change.js 为logs/cookies.conf文件里面第一行cookie账户单独执行jd_bean_change脚本
|
|
||||||
spnode jd_XXXX /scripts/jd_bean_change.js 为logs/cookies.conf文件里面pt_pin=jd_XXXX的cookie账户单独执行jd_bean_change脚本
|
|
||||||
spnode /scripts/jd_bean_change.js 为logs/cookies.conf所有cookies账户一起执行jd_bean_change脚本
|
|
||||||
|
|
||||||
**请仔细阅读并理解上面的内容,使用bot交互默认开启spnode指令功能功能。**
|
|
||||||
+ 2021-03-9更新 新版docker单容器多账号自动互助
|
|
||||||
+开启方式:docker-compose.yml 中添加环境变量 - ENABLE_AUTO_HELP=true
|
|
||||||
+助力原则:不考虑需要被助力次数与提供助力次数 假设有3个账号,则生成: ”助力码1@助力码2@助力码3&助力码1@助力码2@助力码3&助力码1@助力码2@助力码3“
|
|
||||||
+原理说明:1、定时调用 /scripts/docker/auto_help.sh collect 收集各个活动的助力码,整理、去重、排序、保存到 /scripts/logs/sharecodeCollection.log;
|
|
||||||
2、(由于linux进程限制,父进程无法获取子进程环境变量)在每次脚本运行前,在当前进程先调用 /scripts/docker/auto_help.sh export 把助力码注入到环境变量
|
|
||||||
|
|
||||||
+ 2021-02-21更新 https://gitee.com/lxk0301/jd_scripts仓库被迫私有,老用户重新更新一下镜像:https://hub.docker.com/r/lxk0301/jd_scripts)(docker-compose.yml的REPO_URL记得修改)后续可同步更新jd_script仓库最新脚本
|
|
||||||
+ 2021-02-10更新 docker-compose里面,填写环境变量 SHARE_CODE_FILE=/scripts/logs/sharecode.log, 多账号可实现自己互助(只限sharecode.log日志里面几个活动),注:已停用,请使用2021-03-9更新
|
|
||||||
+ 2021-01-22更新 CUSTOM_LIST_FILE 参数支持远程定时任务列表 (⚠️务必确认列表中的任务在仓库里存在)
|
|
||||||
+ 例1:配置远程crontab_list.sh, 此处借用 shylocks 大佬的定时任务列表, 本仓库不包含列表中的任务代码, 仅作示范
|
|
||||||
+ CUSTOM_LIST_FILE=https://raw.githubusercontent.com/shylocks/Loon/main/docker/crontab_list.sh
|
|
||||||
+
|
|
||||||
+ 例2:配置docker挂载本地定时任务列表, 用法不变, 注意volumes挂载
|
|
||||||
+ volumes:
|
|
||||||
+ - ./my_crontab_list.sh:/scripts/docker/my_crontab_list.sh
|
|
||||||
+ environment:
|
|
||||||
+ - CUSTOM_LIST_FILE=my_crontab_list.sh
|
|
||||||
|
|
||||||
|
|
||||||
+ 2021-01-21更新 增加 DO_NOT_RUN_SCRIPTS 参数配置不执行的脚本
|
|
||||||
+ 例:DO_NOT_RUN_SCRIPTS=jd_family.js&jd_dreamFactory.js&jd_jxnc.js
|
|
||||||
建议填写完整文件名,不完整的文件名可能导致其他脚本被禁用。
|
|
||||||
例如:“jd_joy”会匹配到“jd_joy_feedPets”、“jd_joy_reward”、“jd_joy_steal”
|
|
||||||
|
|
||||||
+ 2021-01-03更新 增加 CUSTOM_SHELL_FILE 参数配置执行自定义shell脚本
|
|
||||||
+ 例1:配置远程shell脚本, 我自己写了一个shell脚本https://raw.githubusercontent.com/iouAkira/someDockerfile/master/jd_scripts/shell_script_mod.sh 内容很简单下载惊喜农场并添加定时任务
|
|
||||||
+ CUSTOM_SHELL_FILE=https://raw.githubusercontent.com/iouAkira/someDockerfile/master/jd_scripts/shell_script_mod.sh
|
|
||||||
+
|
|
||||||
+ 例2:配置docker挂载本地自定义shell脚本,/scripts/docker/shell_script_mod.sh 为你在docker-compose.yml里面挂载到容器里面绝对路径
|
|
||||||
+ CUSTOM_SHELL_FILE=/scripts/docker/shell_script_mod.sh
|
|
||||||
+
|
|
||||||
+ tip:如果使用远程自定义,请保证网络畅通或者选择合适的国内仓库,例如有部分人的容器里面就下载不到github的raw文件,那就可以把自己的自定义shell写在gitee上,或者换本地挂载
|
|
||||||
+ 如果是 docker 挂载本地,请保证文件挂载进去了,并且配置的是绝对路径。
|
|
||||||
+ 自定义 shell 脚本里面如果要加 crontab 任务请使用 echo 追加到 /scripts/docker/merged_list_file.sh 里面否则不生效
|
|
||||||
+ 注⚠️ 建议无shell能力的不要轻易使用,当然你可以找别人写好适配了这个docker镜像的脚本直接远程配置
|
|
||||||
+ 上面写了这么多如果还看不懂,不建议使用该变量功能。
|
|
||||||
_____
|
|
||||||
! ⚠️⚠️⚠️2020-12-11更新镜像启动方式,虽然兼容旧版的运行启动方式,但是强烈建议更新镜像和配置后使用
|
|
||||||
! 更新后`command:`指令配置不再需要
|
|
||||||
! 更新后可以使用自定义任务文件追加在默任务文件之后,比以前的完全覆盖多一个选择
|
|
||||||
! - 新的自定两个环境变量为 `CUSTOM_LIST_MERGE_TYPE`:自定文件的生效方式可选值为`append`,`overwrite`默认为`append` ; `CUSTOM_LIST_FILE`: 自定义文件的名字
|
|
||||||
! 更新镜像增减镜像更新通知,以后镜像如果更新之后,会通知用户更新
|
|
||||||
```
|
|
||||||
> 推荐使用`docker-compose`所以这里只介绍`docker-compose`使用方式
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Docker安装
|
|
||||||
|
|
||||||
- 国内一键安装 `sudo curl -sSL https://get.daocloud.io/docker | sh`
|
|
||||||
- 国外一键安装 `sudo curl -sSL get.docker.com | sh`
|
|
||||||
- 北京外国语大学开源软件镜像站 `https://mirrors.bfsu.edu.cn/help/docker-ce/`
|
|
||||||
|
|
||||||
|
|
||||||
docker-compose 安装(群晖`nas docker`自带安装了`docker-compose`)
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
|
||||||
sudo chmod +x /usr/local/bin/docker-compose
|
|
||||||
```
|
|
||||||
`Ubuntu`用户快速安装`docker-compose`
|
|
||||||
```
|
|
||||||
sudo apt-get update && sudo apt-get install -y python3-pip curl vim git moreutils
|
|
||||||
pip3 install --upgrade pip
|
|
||||||
pip install docker-compose
|
|
||||||
```
|
|
||||||
|
|
||||||
### win10用户下载安装[docker desktop](https://www.docker.com/products/docker-desktop)
|
|
||||||
|
|
||||||
通过`docker-compose version`查看`docker-compose`版本,确认是否安装成功。
|
|
||||||
|
|
||||||
|
|
||||||
### 如果需要使用 docker 多个账户独立并发执行定时任务,[参考这里](./example/docker%E5%A4%9A%E8%B4%A6%E6%88%B7%E4%BD%BF%E7%94%A8%E7%8B%AC%E7%AB%8B%E5%AE%B9%E5%99%A8%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E.md#%E4%BD%BF%E7%94%A8%E6%AD%A4%E6%96%B9%E5%BC%8F%E8%AF%B7%E5%85%88%E7%90%86%E8%A7%A3%E5%AD%A6%E4%BC%9A%E4%BD%BF%E7%94%A8docker%E5%8A%9E%E6%B3%95%E4%B8%80%E7%9A%84%E4%BD%BF%E7%94%A8%E6%96%B9%E5%BC%8F)
|
|
||||||
|
|
||||||
> 注⚠️:前提先理解学会使用这下面的教程
|
|
||||||
### 创建一个目录`jd_scripts`用于存放备份配置等数据,迁移重装的时候只需要备份整个jd_scripts目录即可
|
|
||||||
需要新建的目录文件结构参考如下:
|
|
||||||
```
|
|
||||||
jd_scripts
|
|
||||||
├── logs
|
|
||||||
│ ├── XXXX.log
|
|
||||||
│ └── XXXX.log
|
|
||||||
├── my_crontab_list.sh
|
|
||||||
└── docker-compose.yml
|
|
||||||
```
|
|
||||||
- `jd_scripts/logs`建一个空文件夹就行
|
|
||||||
- `jd_scripts/docker-compose.yml` 参考内容如下(自己动手能力不行搞不定请使用默认配置):
|
|
||||||
- - [使用默认配置用这个](./example/default.yml)
|
|
||||||
- - [使用自定义任务追加到默认任务之后用这个](./example/custom-append.yml)
|
|
||||||
- - [使用自定义任务覆盖默认任务用这个](./example/custom-overwrite.yml)
|
|
||||||
- - [一次启动多容器并发用这个](./example/multi.yml)
|
|
||||||
- - [使用群晖默认配置用这个](./example/jd_scripts.syno.json)
|
|
||||||
- - [使用群晖自定义任务追加到默认任务之后用这个](./example/jd_scripts.custom-append.syno.json)
|
|
||||||
- - [使用群晖自定义任务覆盖默认任务用这个](./example/jd_scripts.custom-overwrite.syno.json)
|
|
||||||
- `jd_scripts/docker-compose.yml`里面的环境变量(`environment:`)配置[参考这里](../githubAction.md#互助码类环境变量) 和[本文末尾](../docker/Readme.md#docker专属环境变量)
|
|
||||||
|
|
||||||
|
|
||||||
- `jd_scripts/my_crontab_list.sh` 参考内容如下,自己根据需要调整增加删除,不熟悉用户推荐使用[默认配置](./crontab_list.sh)里面的内容:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
# 每3天的23:50分清理一次日志(互助码不清理,proc_file.sh对该文件进行了去重)
|
|
||||||
50 23 */3 * * find /scripts/logs -name '*.log' | grep -v 'sharecode' | xargs rm -rf
|
|
||||||
|
|
||||||
##############短期活动##############
|
|
||||||
# 小鸽有礼2(活动时间:2021年1月28日~2021年2月28日)
|
|
||||||
34 9 * * * node /scripts/jd_xgyl.js >> /scripts/logs/jd_jd_xgyl.log 2>&1
|
|
||||||
|
|
||||||
#女装盲盒 活动时间:2021-2-19至2021-2-25
|
|
||||||
5 7,23 19-25 2 * node /scripts/jd_nzmh.js >> /scripts/logs/jd_nzmh.log 2>&1
|
|
||||||
|
|
||||||
#京东极速版天天领红包 活动时间:2021-1-18至2021-3-3
|
|
||||||
5 0,23 * * * node /scripts/jd_speed_redpocke.js >> /scripts/logs/jd_speed_redpocke.log 2>&1
|
|
||||||
##############长期活动##############
|
|
||||||
# 签到
|
|
||||||
3 0,18 * * * cd /scripts && node jd_bean_sign.js >> /scripts/logs/jd_bean_sign.log 2>&1
|
|
||||||
# 东东超市兑换奖品
|
|
||||||
0,30 0 * * * node /scripts/jd_blueCoin.js >> /scripts/logs/jd_blueCoin.log 2>&1
|
|
||||||
# 摇京豆
|
|
||||||
0 0 * * * node /scripts/jd_club_lottery.js >> /scripts/logs/jd_club_lottery.log 2>&1
|
|
||||||
# 东东农场
|
|
||||||
5 6-18/6 * * * node /scripts/jd_fruit.js >> /scripts/logs/jd_fruit.log 2>&1
|
|
||||||
# 宠汪汪
|
|
||||||
15 */2 * * * node /scripts/jd_joy.js >> /scripts/logs/jd_joy.log 2>&1
|
|
||||||
# 宠汪汪喂食
|
|
||||||
15 */1 * * * node /scripts/jd_joy_feedPets.js >> /scripts/logs/jd_joy_feedPets.log 2>&1
|
|
||||||
# 宠汪汪偷好友积分与狗粮
|
|
||||||
13 0-21/3 * * * node /scripts/jd_joy_steal.js >> /scripts/logs/jd_joy_steal.log 2>&1
|
|
||||||
# 摇钱树
|
|
||||||
0 */2 * * * node /scripts/jd_moneyTree.js >> /scripts/logs/jd_moneyTree.log 2>&1
|
|
||||||
# 东东萌宠
|
|
||||||
5 6-18/6 * * * node /scripts/jd_pet.js >> /scripts/logs/jd_pet.log 2>&1
|
|
||||||
# 京东种豆得豆
|
|
||||||
0 7-22/1 * * * node /scripts/jd_plantBean.js >> /scripts/logs/jd_plantBean.log 2>&1
|
|
||||||
# 京东全民开红包
|
|
||||||
1 1 * * * node /scripts/jd_redPacket.js >> /scripts/logs/jd_redPacket.log 2>&1
|
|
||||||
# 进店领豆
|
|
||||||
10 0 * * * node /scripts/jd_shop.js >> /scripts/logs/jd_shop.log 2>&1
|
|
||||||
# 京东天天加速
|
|
||||||
8 */3 * * * node /scripts/jd_speed.js >> /scripts/logs/jd_speed.log 2>&1
|
|
||||||
# 东东超市
|
|
||||||
11 1-23/5 * * * node /scripts/jd_superMarket.js >> /scripts/logs/jd_superMarket.log 2>&1
|
|
||||||
# 取关京东店铺商品
|
|
||||||
55 23 * * * node /scripts/jd_unsubscribe.js >> /scripts/logs/jd_unsubscribe.log 2>&1
|
|
||||||
# 京豆变动通知
|
|
||||||
0 10 * * * node /scripts/jd_bean_change.js >> /scripts/logs/jd_bean_change.log 2>&1
|
|
||||||
# 京东抽奖机
|
|
||||||
11 1 * * * node /scripts/jd_lotteryMachine.js >> /scripts/logs/jd_lotteryMachine.log 2>&1
|
|
||||||
# 京东排行榜
|
|
||||||
11 9 * * * node /scripts/jd_rankingList.js >> /scripts/logs/jd_rankingList.log 2>&1
|
|
||||||
# 天天提鹅
|
|
||||||
18 * * * * node /scripts/jd_daily_egg.js >> /scripts/logs/jd_daily_egg.log 2>&1
|
|
||||||
# 金融养猪
|
|
||||||
12 * * * * node /scripts/jd_pigPet.js >> /scripts/logs/jd_pigPet.log 2>&1
|
|
||||||
# 点点券
|
|
||||||
20 0,20 * * * node /scripts/jd_necklace.js >> /scripts/logs/jd_necklace.log 2>&1
|
|
||||||
# 京喜工厂
|
|
||||||
20 * * * * node /scripts/jd_dreamFactory.js >> /scripts/logs/jd_dreamFactory.log 2>&1
|
|
||||||
# 东东小窝
|
|
||||||
16 6,23 * * * node /scripts/jd_small_home.js >> /scripts/logs/jd_small_home.log 2>&1
|
|
||||||
# 东东工厂
|
|
||||||
36 * * * * node /scripts/jd_jdfactory.js >> /scripts/logs/jd_jdfactory.log 2>&1
|
|
||||||
# 十元街
|
|
||||||
36 8,18 * * * node /scripts/jd_syj.js >> /scripts/logs/jd_syj.log 2>&1
|
|
||||||
# 京东快递签到
|
|
||||||
23 1 * * * node /scripts/jd_kd.js >> /scripts/logs/jd_kd.log 2>&1
|
|
||||||
# 京东汽车(签到满500赛点可兑换500京豆)
|
|
||||||
0 0 * * * node /scripts/jd_car.js >> /scripts/logs/jd_car.log 2>&1
|
|
||||||
# 领京豆额外奖励(每日可获得3京豆)
|
|
||||||
33 4 * * * node /scripts/jd_bean_home.js >> /scripts/logs/jd_bean_home.log 2>&1
|
|
||||||
# 微信小程序京东赚赚
|
|
||||||
10 11 * * * node /scripts/jd_jdzz.js >> /scripts/logs/jd_jdzz.log 2>&1
|
|
||||||
# 宠汪汪邀请助力
|
|
||||||
10 9-20/2 * * * node /scripts/jd_joy_run.js >> /scripts/logs/jd_joy_run.log 2>&1
|
|
||||||
# crazyJoy自动每日任务
|
|
||||||
10 7 * * * node /scripts/jd_crazy_joy.js >> /scripts/logs/jd_crazy_joy.log 2>&1
|
|
||||||
# 京东汽车旅程赛点兑换金豆
|
|
||||||
0 0 * * * node /scripts/jd_car_exchange.js >> /scripts/logs/jd_car_exchange.log 2>&1
|
|
||||||
# 导到所有互助码
|
|
||||||
47 7 * * * node /scripts/jd_get_share_code.js >> /scripts/logs/jd_get_share_code.log 2>&1
|
|
||||||
# 口袋书店
|
|
||||||
7 8,12,18 * * * node /scripts/jd_bookshop.js >> /scripts/logs/jd_bookshop.log 2>&1
|
|
||||||
# 京喜农场
|
|
||||||
0 9,12,18 * * * node /scripts/jd_jxnc.js >> /scripts/logs/jd_jxnc.log 2>&1
|
|
||||||
# 签到领现金
|
|
||||||
27 */4 * * * node /scripts/jd_cash.js >> /scripts/logs/jd_cash.log 2>&1
|
|
||||||
# 京喜app签到
|
|
||||||
39 7 * * * node /scripts/jx_sign.js >> /scripts/logs/jx_sign.log 2>&1
|
|
||||||
# 京东家庭号(暂不知最佳cron)
|
|
||||||
# */20 * * * * node /scripts/jd_family.js >> /scripts/logs/jd_family.log 2>&1
|
|
||||||
# 闪购盲盒
|
|
||||||
27 8 * * * node /scripts/jd_sgmh.js >> /scripts/logs/jd_sgmh.log 2>&1
|
|
||||||
# 京东秒秒币
|
|
||||||
10 7 * * * node /scripts/jd_ms.js >> /scripts/logs/jd_ms.log 2>&1
|
|
||||||
#美丽研究院
|
|
||||||
1 7,12,19 * * * node /scripts/jd_beauty.js >> /scripts/logs/jd_beauty.log 2>&1
|
|
||||||
#京东保价
|
|
||||||
1 0,23 * * * node /scripts/jd_price.js >> /scripts/logs/jd_price.log 2>&1
|
|
||||||
#京东极速版签到+赚现金任务
|
|
||||||
1 1,6 * * * node /scripts/jd_speed_sign.js >> /scripts/logs/jd_speed_sign.log 2>&1
|
|
||||||
# 删除优惠券(默认注释,如需要自己开启,如有误删,已删除的券可以在回收站中还原,慎用)
|
|
||||||
#20 9 * * 6 node /scripts/jd_delCoupon.js >> /scripts/logs/jd_delCoupon.log 2>&1
|
|
||||||
```
|
|
||||||
> 定时任务命之后,也就是 `>>` 符号之前加上 `|ts` 可在日志每一行前面显示时间,如下图:
|
|
||||||
> 
|
|
||||||
- 目录文件配置好之后在 `jd_scripts`目录执行。
|
|
||||||
`docker-compose up -d` 启动(修改docker-compose.yml后需要使用此命令使更改生效);
|
|
||||||
`docker-compose logs` 打印日志;
|
|
||||||
`docker-compose logs -f` 打印日志,-f表示跟随日志;
|
|
||||||
`docker logs -f jd_scripts` 和上面两条相比可以显示汉字;
|
|
||||||
`docker-compose pull` 更新镜像;多容器用户推荐使用`docker pull lxk0301/jd_scripts`;
|
|
||||||
`docker-compose stop` 停止容器;
|
|
||||||
`docker-compose restart` 重启容器;
|
|
||||||
`docker-compose down` 停止并删除容器;
|
|
||||||
|
|
||||||
- 你可能会用到的命令
|
|
||||||
|
|
||||||
`docker exec -it jd_scripts /bin/sh -c ". /scripts/docker/auto_help.sh export > /scripts/logs/auto_help_export.log && node /scripts/xxxx.js |ts >> /scripts/logs/xxxx.log 2>&1"` 手动运行一脚本(有自动助力)
|
|
||||||
|
|
||||||
`docker exec -it jd_scripts /bin/sh -c "node /scripts/xxxx.js |ts >> /scripts/logs/xxxx.log 2>&1"` 手动运行一脚本(无自动助力)
|
|
||||||
|
|
||||||
`docker exec -it jd_scripts /bin/sh -c 'env'` 查看设置的环境变量
|
|
||||||
|
|
||||||
`docker exec -it jd_scripts /bin/sh -c 'crontab -l'` 查看已生效的crontab_list定时器任务
|
|
||||||
|
|
||||||
`docker exec -it jd_scripts sh -c "git pull"` 手动更新jd_scripts仓库最新脚本(默认已有每天拉取两次的定时任务,不推荐使用)
|
|
||||||
|
|
||||||
`docker exec -it jd_scripts /bin/sh` 仅进入容器命令
|
|
||||||
|
|
||||||
`rm -rf logs/*.log` 删除logs文件夹里面所有的日志文件(linux)
|
|
||||||
|
|
||||||
`docker exec -it jd_scripts /bin/sh -c ' ls jd_*.js | grep -v jd_crazy_joy_coin.js |xargs -i node {}'` 执行所有定时任务
|
|
||||||
|
|
||||||
- 如果是群晖用户,在docker注册表搜`jd_scripts`,双击下载映像。
|
|
||||||
不需要`docker-compose.yml`,只需建个logs/目录,调整`jd_scripts.syno.json`里面对应的配置值,然后导入json配置新建容器。
|
|
||||||
若要自定义`my_crontab_list.sh`,再建个`my_crontab_list.sh`文件,配置参考`jd_scripts.my_crontab_list.syno.json`。
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
### DOCKER专属环境变量
|
|
||||||
|
|
||||||
| Name | 归属 | 属性 | 说明 |
|
|
||||||
| :---------------: | :------------: | :----: | ------------------------------------------------------------ |
|
|
||||||
| `CRZAY_JOY_COIN_ENABLE` | 是否jd_crazy_joy_coin挂机 | 非必须 | `docker-compose.yml`文件下填写`CRZAY_JOY_COIN_ENABLE=Y`表示挂机,`CRZAY_JOY_COIN_ENABLE=N`表不挂机 |
|
|
||||||
| `DO_NOT_RUN_SCRIPTS` | 不执行的脚本 | 非必须 | 例:`docker-compose.yml`文件里面填写`DO_NOT_RUN_SCRIPTS=jd_family.js&jd_dreamFactory.js&jd_jxnc.js`, 建议填写完整脚本名,不完整的文件名可能导致其他脚本被禁用 |
|
|
||||||
| `ENABLE_AUTO_HELP` | 单容器多账号自动互助 | 非必须 | 例:`docker-compose.yml`文件里面填写`ENABLE_AUTO_HELP=true` |
|
|
||||||
@ -1,155 +0,0 @@
|
|||||||
#set -e
|
|
||||||
|
|
||||||
#日志路径
|
|
||||||
logDir="/scripts/logs"
|
|
||||||
|
|
||||||
# 处理后的log文件
|
|
||||||
logFile=${logDir}/sharecodeCollection.log
|
|
||||||
if [ -n "$1" ]; then
|
|
||||||
parameter=${1}
|
|
||||||
else
|
|
||||||
echo "没有参数"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 收集助力码
|
|
||||||
collectSharecode() {
|
|
||||||
if [ -f ${2} ]; then
|
|
||||||
echo "${1}:清理 ${preLogFile} 中的旧助力码,收集新助力码"
|
|
||||||
|
|
||||||
#删除预处理旧助力码
|
|
||||||
if [ -f "${logFile}" ]; then
|
|
||||||
sed -i '/'"${1}"'/d' ${logFile}
|
|
||||||
fi
|
|
||||||
|
|
||||||
#收集日志中的互助码
|
|
||||||
codes="$(sed -n '/'${1}'.*/'p ${2} | sed 's/京东账号/京东账号 /g' | sed 's/(/ (/g' | sed 's/】/】 /g' | awk '{print $4,$5,$6,$7}' | sort -gk2 | awk '!a[$2" "$3]++{print}')"
|
|
||||||
|
|
||||||
#获取ck文件夹中的pin值集合
|
|
||||||
if [ -f "/usr/local/bin/spnode" ]; then
|
|
||||||
ptpins="$(awk -F "=" '{print $3}' $COOKIES_LIST | awk -F ";" '{print $1}')"
|
|
||||||
else
|
|
||||||
ptpins="$(echo $JD_COOKIE | sed "s/[ &]/\\n/g" | sed "/^$/d" | awk -F "=" '{print $3}' | awk -F ";" '{print $1}')"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#遍历pt_pin值
|
|
||||||
for item in $ptpins; do
|
|
||||||
#中文pin解码
|
|
||||||
if [ ${#item} > 20 ]; then
|
|
||||||
item="$(printf $(echo -n "$item" | sed 's/\\/\\\\/g;s/\(%\)\([0-9a-fA-F][0-9a-fA-F]\)/\\x\2/g')"\n")"
|
|
||||||
fi
|
|
||||||
#根据pin值匹配第一个code结果输出到文件中
|
|
||||||
echo "$codes" | grep -m1 $item >> $logFile
|
|
||||||
done
|
|
||||||
else
|
|
||||||
echo "${1}:${2} 文件不存在,不清理 ${logFile} 中的旧助力码"
|
|
||||||
fi
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
# 导出助力码
|
|
||||||
exportSharecode() {
|
|
||||||
if [ -f ${logFile} ]; then
|
|
||||||
#账号数
|
|
||||||
cookiecount=$(echo ${JD_COOKIE} | grep -o pt_key | grep -c pt_key)
|
|
||||||
if [ -f /usr/local/bin/spnode ]; then
|
|
||||||
cookiecount=$(cat "$COOKIES_LIST" | grep -o pt_key | grep -c pt_key)
|
|
||||||
fi
|
|
||||||
echo "cookie个数:${cookiecount}"
|
|
||||||
|
|
||||||
# 单个账号助力码
|
|
||||||
singleSharecode=$(sed -n '/'${1}'.*/'p ${logFile} | awk '{print $4}' | awk '{T=T"@"$1} END {print T}' | awk '{print substr($1,2)}')
|
|
||||||
# | awk '{print $2,$4}' | sort -g | uniq
|
|
||||||
# echo "singleSharecode:${singleSharecode}"
|
|
||||||
|
|
||||||
# 拼接多个账号助力码
|
|
||||||
num=1
|
|
||||||
while [ ${num} -le ${cookiecount} ]; do
|
|
||||||
local allSharecode=${allSharecode}"&"${singleSharecode}
|
|
||||||
num=$(expr $num + 1)
|
|
||||||
done
|
|
||||||
|
|
||||||
allSharecode=$(echo ${allSharecode} | awk '{print substr($1,2)}')
|
|
||||||
|
|
||||||
# echo "${1}:${allSharecode}"
|
|
||||||
|
|
||||||
#判断合成的助力码长度是否大于账号数,不大于,则可知没有助力码
|
|
||||||
if [ ${#allSharecode} -gt ${cookiecount} ]; then
|
|
||||||
echo "${1}:导出助力码"
|
|
||||||
echo "${3}=${allSharecode}"
|
|
||||||
export ${3}=${allSharecode}
|
|
||||||
else
|
|
||||||
echo "${1}:没有助力码,不导出"
|
|
||||||
fi
|
|
||||||
|
|
||||||
else
|
|
||||||
echo "${1}:${logFile} 不存在,不导出助力码"
|
|
||||||
fi
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#生成助力码
|
|
||||||
autoHelp() {
|
|
||||||
if [ ${parameter} == "collect" ]; then
|
|
||||||
|
|
||||||
# echo "收集助力码"
|
|
||||||
collectSharecode ${1} ${2} ${3}
|
|
||||||
|
|
||||||
elif [ ${parameter} == "export" ]; then
|
|
||||||
|
|
||||||
# echo "导出助力码"
|
|
||||||
exportSharecode ${1} ${2} ${3}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
#日志需要为这种格式才能自动提取
|
|
||||||
#Mar 07 00:15:10 【京东账号1(xxxxxx)的京喜财富岛好友互助码】3B41B250C4A369EE6DCA6834880C0FE0624BAFD83FC03CA26F8DEC7DB95D658C
|
|
||||||
|
|
||||||
#新增自动助力活动格式
|
|
||||||
# autoHelp 关键词 日志路径 变量名
|
|
||||||
|
|
||||||
############# 短期活动 #############
|
|
||||||
|
|
||||||
|
|
||||||
############# 长期活动 #############
|
|
||||||
|
|
||||||
#东东农场
|
|
||||||
autoHelp "东东农场好友互助码" "${logDir}/jd_fruit.log" "FRUITSHARECODES"
|
|
||||||
|
|
||||||
#东东萌宠
|
|
||||||
autoHelp "东东萌宠好友互助码" "${logDir}/jd_pet.log" "PETSHARECODES"
|
|
||||||
|
|
||||||
#种豆得豆
|
|
||||||
autoHelp "京东种豆得豆好友互助码" "${logDir}/jd_plantBean.log" "PLANT_BEAN_SHARECODES"
|
|
||||||
|
|
||||||
#京喜工厂
|
|
||||||
autoHelp "京喜工厂好友互助码" "${logDir}/jd_dreamFactory.log" "DREAM_FACTORY_SHARE_CODES"
|
|
||||||
|
|
||||||
#东东工厂
|
|
||||||
autoHelp "东东工厂好友互助码" "${logDir}/jd_jdfactory.log" "DDFACTORY_SHARECODES"
|
|
||||||
|
|
||||||
#crazyJoy
|
|
||||||
autoHelp "crazyJoy任务好友互助码" "${logDir}/jd_crazy_joy.log" "JDJOY_SHARECODES"
|
|
||||||
|
|
||||||
#京喜财富岛
|
|
||||||
autoHelp "京喜财富岛好友互助码" "${logDir}/jd_cfd.log" "JDCFD_SHARECODES"
|
|
||||||
|
|
||||||
#京喜农场
|
|
||||||
autoHelp "京喜农场好友互助码" "${logDir}/jd_jxnc.log" "JXNC_SHARECODES"
|
|
||||||
|
|
||||||
#京东赚赚
|
|
||||||
autoHelp "京东赚赚好友互助码" "${logDir}/jd_jdzz.log" "JDZZ_SHARECODES"
|
|
||||||
|
|
||||||
######### 日志打印格式需调整 #########
|
|
||||||
|
|
||||||
#口袋书店
|
|
||||||
autoHelp "口袋书店好友互助码" "${logDir}/jd_bookshop.log" "BOOKSHOP_SHARECODES"
|
|
||||||
|
|
||||||
#领现金
|
|
||||||
autoHelp "签到领现金好友互助码" "${logDir}/jd_cash.log" "JD_CASH_SHARECODES"
|
|
||||||
|
|
||||||
#闪购盲盒
|
|
||||||
autoHelp "闪购盲盒好友互助码" "${logDir}/jd_sgmh.log" "JDSGMH_SHARECODES"
|
|
||||||
|
|
||||||
#东东健康社区
|
|
||||||
autoHelp "东东健康社区好友互助码" "${logDir}/jd_health.log" "JDHEALTH_SHARECODES"
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 7.2 KiB |
1114
docker/bot/jd_bot
1114
docker/bot/jd_bot
File diff suppressed because it is too large
Load Diff
@ -1,5 +0,0 @@
|
|||||||
python_telegram_bot==13.0
|
|
||||||
requests==2.23.0
|
|
||||||
MyQR==2.3.1
|
|
||||||
telegram==0.0.1
|
|
||||||
tzlocal<3.0
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
# @Author : iouAkira(lof)
|
|
||||||
# @mail : e.akimoto.akira@gmail.com
|
|
||||||
# @CreateTime: 2020-11-02
|
|
||||||
# @UpdateTime: 2021-03-21
|
|
||||||
|
|
||||||
from setuptools import setup
|
|
||||||
|
|
||||||
setup(
|
|
||||||
name='jd-scripts-bot',
|
|
||||||
version='0.2',
|
|
||||||
scripts=['jd_bot', ],
|
|
||||||
)
|
|
||||||
@ -1,229 +0,0 @@
|
|||||||
# 每3天的23:50分清理一次日志(互助码不清理,proc_file.sh对该文件进行了去重)
|
|
||||||
50 23 */3 * * find /scripts/logs -name '*.log' | grep -v 'sharecodeCollection' | xargs rm -rf
|
|
||||||
#收集助力码
|
|
||||||
30 * * * * sh +x /scripts/docker/auto_help.sh collect >> /scripts/logs/auto_help_collect.log 2>&1
|
|
||||||
|
|
||||||
##############活动##############
|
|
||||||
|
|
||||||
#宠汪汪
|
|
||||||
35 0-23/2 * * * node /scripts/jd_joy.js >> /scripts/logs/jd_joy.log 2>&1
|
|
||||||
#宠汪汪兑换
|
|
||||||
59 7,15,23 * * * node /scripts/jd_joy_reward.js >> /scripts/logs/jd_joy_reward.log 2>&1
|
|
||||||
#点点券
|
|
||||||
#10 6,20 * * * node /scripts/jd_necklace.js >> /scripts/logs/jd_necklace.log 2>&1
|
|
||||||
#惊喜签到
|
|
||||||
0 3,8 * * * node /scripts/jd_jxsign.js >> /scripts/logs/jd_jxsign.log 2>&1
|
|
||||||
#东东超市兑换奖品
|
|
||||||
59 23 * * * node /scripts/jd_blueCoin.js >> /scripts/logs/jd_blueCoin.log 2>&1
|
|
||||||
#财富岛
|
|
||||||
35 * * * * node /scripts/jd_cfd.js >> /scripts/logs/jd_cfd.log 2>&1
|
|
||||||
#京东汽车
|
|
||||||
10 4,20 * * * node /scripts/jd_car.js >> /scripts/logs/jd_car.log 2>&1
|
|
||||||
#金榜创造营
|
|
||||||
13 5,19 * * * node /scripts/jd_gold_creator.js >> /scripts/logs/jd_gold_creator.log 2>&1
|
|
||||||
#京东多合一签到
|
|
||||||
0 4,14 * * * node /scripts/jd_bean_sign.js >> /scripts/logs/jd_bean_sign.log 2>&1
|
|
||||||
#半点京豆雨
|
|
||||||
30 0-23/1 * * * node /scripts/jd_half_redrain.js >> /scripts/logs/jd_half_redrain.log 2>&1
|
|
||||||
#东东超市
|
|
||||||
39 * * * * node /scripts/jd_superMarket.js >> /scripts/logs/jd_superMarket.log 2>&1
|
|
||||||
#京东极速版红包
|
|
||||||
20 2,12 * * * node /scripts/jd_speed_redpocke.js >> /scripts/logs/jd_speed_redpocke.log 2>&1
|
|
||||||
#领京豆额外奖励
|
|
||||||
10 3,9 * * * node /scripts/jd_bean_home.js >> /scripts/logs/jd_bean_home.log 2>&1
|
|
||||||
#京东资产变动通知
|
|
||||||
0 12 * * * node /scripts/jd_bean_change.js >> /scripts/logs/jd_bean_change.log 2>&1
|
|
||||||
#京东极速版
|
|
||||||
0 1,7 * * * node /scripts/jd_speed_sign.js >> /scripts/logs/jd_speed_sign.log 2>&1
|
|
||||||
#我是大老板
|
|
||||||
35 0-23/1 * * * node /scripts/jd_wsdlb.js >> /scripts/logs/jd_wsdlb.log 2>&1
|
|
||||||
#
|
|
||||||
5 3,19 * * * node /scripts/jd_unsubscribe.js >> /scripts/logs/jd_unsubscribe.log 2>&1
|
|
||||||
#东东萌宠
|
|
||||||
45 6-18/6 * * * node /scripts/jd_pet.js >> /scripts/logs/jd_pet.log 2>&1
|
|
||||||
#挑一挑
|
|
||||||
1 3,9,18 * * * node /scripts/jd_jump.js >> /scripts/logs/jd_jump.log 2>&1
|
|
||||||
#
|
|
||||||
36 0,1-23/3 * * * node /scripts/jd_mohe.js >> /scripts/logs/jd_mohe.log 2>&1
|
|
||||||
#种豆得豆
|
|
||||||
44 0-23/6 * * * node /scripts/jd_plantBean.js >> /scripts/logs/jd_plantBean.log 2>&1
|
|
||||||
#东东农场
|
|
||||||
35 6-18/6 * * * node /scripts/jd_fruit.js >> /scripts/logs/jd_fruit.log 2>&1
|
|
||||||
#删除优惠券
|
|
||||||
0 3,20 * * * node /scripts/jd_delCoupon.js >> /scripts/logs/jd_delCoupon.log 2>&1
|
|
||||||
#
|
|
||||||
5 2,19 * * * node /scripts/jd_club_lottery.js >> /scripts/logs/jd_club_lottery.log 2>&1
|
|
||||||
#
|
|
||||||
40 * * * * node /scripts/jd_jdfactory.js >> /scripts/logs/jd_jdfactory.log 2>&1
|
|
||||||
#
|
|
||||||
0 0-23/1 * * * node /scripts/jd_super_redrain.js >> /scripts/logs/jd_super_redrain.log 2>&1
|
|
||||||
#领金贴
|
|
||||||
10 1 * * * node /scripts/jd_jin_tie.js >> /scripts/logs/jd_jin_tie.log 2>&1
|
|
||||||
#健康社区
|
|
||||||
13 2,5,20 * * * node /scripts/jd_health.js >> /scripts/logs/jd_health.log 2>&1
|
|
||||||
#秒秒币
|
|
||||||
10 2 * * * node /scripts/jd_ms.js >> /scripts/logs/jd_ms.log 2>&1
|
|
||||||
#
|
|
||||||
1 2,15,19 * * * node /scripts/jd_daily_lottery.js >> /scripts/logs/jd_daily_lottery.log 2>&1
|
|
||||||
#
|
|
||||||
9 0-23/3 * * * node /scripts/jd_ddnc_farmpark.js >> /scripts/logs/jd_ddnc_farmpark.log 2>&1
|
|
||||||
#京喜工厂
|
|
||||||
39 * * * * node /scripts/jd_dreamFactory.js >> /scripts/logs/jd_dreamFactory.log 2>&1
|
|
||||||
#闪购盲盒
|
|
||||||
20 4,16,19 * * * node /scripts/jd_sgmh.js >> /scripts/logs/jd_sgmh.log 2>&1
|
|
||||||
#
|
|
||||||
0 0 * * * node /scripts/jd_bean_change1.js >> /scripts/logs/jd_bean_change1.log 2>&1
|
|
||||||
#
|
|
||||||
1 0 * * * node /scripts/jd_shop.js >> /scripts/logs/jd_shop.log 2>&1
|
|
||||||
#摇钱树
|
|
||||||
23 0-23/2 * * * node /scripts/jd_moneyTree.js >> /scripts/logs/jd_moneyTree.log 2>&1
|
|
||||||
#排行榜
|
|
||||||
37 2 * * * node /scripts/jd_rankingList.js >> /scripts/logs/jd_rankingList.log 2>&1
|
|
||||||
#
|
|
||||||
32 0-23/6 * * * node /scripts/jd_pigPet.js >> /scripts/logs/jd_pigPet.log 2>&1
|
|
||||||
#
|
|
||||||
10-20/5 12 * * * node /scripts/jd_live.js >> /scripts/logs/jd_live.log 2>&1
|
|
||||||
#京东快递
|
|
||||||
40 0 * * * node /scripts/jd_kd.js >> /scripts/logs/jd_kd.log 2>&1
|
|
||||||
#美丽研究院
|
|
||||||
16 9,15,17 * * * node /scripts/jd_beauty.js >> /scripts/logs/jd_beauty.log 2>&1
|
|
||||||
#京喜牧场
|
|
||||||
48 0-23/3 * * * node /scripts/jd_jxmc.js >> /scripts/logs/jd_jxmc.log 2>&1
|
|
||||||
#京东试用
|
|
||||||
30 10 * * * node /scripts/jd_try.js >> /scripts/logs/jd_try.log 2>&1
|
|
||||||
#领现金
|
|
||||||
42 0-23/6 * * * node /scripts/jd_cash.js >> /scripts/logs/jd_cash.log 2>&1
|
|
||||||
#赚金币
|
|
||||||
0 8 * * * node /scripts/jd_zjb.js >> /scripts/logs/jd_zjb.log 2>&1
|
|
||||||
#
|
|
||||||
# 0 6 * * * node /scripts/getJDCookie.js >> /scripts/logs/getJDCookie.log 2>&1
|
|
||||||
#京东赚赚
|
|
||||||
10 0 * * * node /scripts/jd_jdzz.js >> /scripts/logs/jd_jdzz.log 2>&1
|
|
||||||
#获取互助码
|
|
||||||
20 13 * * 6 node /scripts/jd_get_share_code.js >> /scripts/logs/jd_get_share_code.log 2>&1
|
|
||||||
#
|
|
||||||
15-55/20 * * * * node /scripts/jd_health_collect.js >> /scripts/logs/jd_health_collect.log 2>&1
|
|
||||||
#京东到家果园
|
|
||||||
10 0,8,11,17 * * * node /scripts/jd_jddj_fruit.js >> /scripts/logs/jd_jddj_fruit.log 2>&1
|
|
||||||
#京东到家
|
|
||||||
5 0,6,12 * * * node /scripts/jd_jddj_bean.js >> /scripts/logs/jd_jddj_bean.log 2>&1
|
|
||||||
#京东到家收水滴
|
|
||||||
10 * * * * node /scripts/jd_jddj_collectWater.js >> /scripts/logs/jd_jddj_collectWater.log 2>&1
|
|
||||||
#京东到家
|
|
||||||
5-40/5 * * * * node /scripts/jd_jddj_getPoints.js >> /scripts/logs/jd_jddj_getPoints.log 2>&1
|
|
||||||
#京东到家
|
|
||||||
20 */4 * * * node /scripts/jd_jddj_plantBeans.js >> /scripts/logs/jd_jddj_plantBeans.log 2>&1
|
|
||||||
#
|
|
||||||
13 3 * * * node /scripts/jd_drawEntrance.js >> /scripts/logs/jd_drawEntrance.log 2>&1
|
|
||||||
#特务
|
|
||||||
1,10 0 * * * node /scripts/jd_superBrand.js >> /scripts/logs/jd_superBrand.log 2>&1
|
|
||||||
#送豆得豆
|
|
||||||
5 0,12 * * * node /scripts/jd_SendBean.js >> /scripts/logs/jd_SendBean.log 2>&1
|
|
||||||
#
|
|
||||||
20 0,2 * * * node /scripts/jd_wish.js >> /scripts/logs/jd_wish.log 2>&1
|
|
||||||
#财富岛气球
|
|
||||||
5 * * * * node /scripts/jd_cfd_loop.js >> /scripts/logs/jd_cfd_loop.log 2>&1
|
|
||||||
#宠汪汪偷狗粮
|
|
||||||
40 0-21/3 * * * node /scripts/jd_joy_steal.js >> /scripts/logs/jd_joy_steal.log 2>&1
|
|
||||||
#京小鸽
|
|
||||||
18 4,11 * * * node /scripts/jd_jxg.js >> /scripts/logs/jd_jxg.log 2>&1
|
|
||||||
#
|
|
||||||
20 6,7 * * * node /scripts/jd_morningSc.js >> /scripts/logs/jd_morningSc.log 2>&1
|
|
||||||
#领现金兑换
|
|
||||||
0 0 * * * node /scripts/jd_cash_exchange.js >> /scripts/logs/jd_cash_exchange.log 2>&1
|
|
||||||
#快手水果
|
|
||||||
33 1,8,12,19 * * * node /scripts/jd_ks_fruit.js >> /scripts/logs/jd_ks_fruit.log 2>&1
|
|
||||||
#宠汪汪喂食
|
|
||||||
15 0-23/1 * * * node /scripts/jd_joy_feedPets.js >> /scripts/logs/jd_joy_feedPets.log 2>&1
|
|
||||||
#宠汪汪赛跑
|
|
||||||
15 10,12 * * * node /scripts/jd_joy_run.js >> /scripts/logs/jd_joy_run.log 2>&1
|
|
||||||
#领京豆
|
|
||||||
38 8,13 * * * node /scripts/jd_mdou.js >> /scripts/logs/jd_mdou.log 2>&1
|
|
||||||
#
|
|
||||||
0 1 * * * node /scripts/jd_cleancart.js >> /scripts/logs/jd_cleancart.log 2>&1
|
|
||||||
#店铺签到
|
|
||||||
2 2 * * * node /scripts/jd_dpqd.js >> /scripts/logs/jd_dpqd.log 2>&1
|
|
||||||
#推一推
|
|
||||||
2 12 * * * node /scripts/jd_tyt.js >> /scripts/logs/jd_tyt.log 2>&1
|
|
||||||
#
|
|
||||||
55 6 * * * node /scripts/jd_unsubscriLive.js >> /scripts/logs/jd_unsubscriLive.log 2>&1
|
|
||||||
#女装盲盒
|
|
||||||
45 2,20 * * * node /scripts/jd_nzmh.js >> /scripts/logs/jd_nzmh.log 2>&1
|
|
||||||
#开卡74
|
|
||||||
47 3 25-30,1 11,12 * node /scripts/jd_opencard74.js >> /scripts/logs/jd_opencard74.log 2>&1
|
|
||||||
#开卡75
|
|
||||||
47 2 1-15 12 * node /scripts/jd_opencard75.js >> /scripts/logs/jd_opencard75.log 2>&1
|
|
||||||
#开卡76
|
|
||||||
47 3 3-12 12 * node /scripts/jd_opencard76.js >> /scripts/logs/jd_opencard76.log 2>&1
|
|
||||||
#积分换话费
|
|
||||||
43 5,17 * * * node /scripts/jd_dwapp.js >> /scripts/logs/jd_dwapp.log 2>&1
|
|
||||||
# 领券中心签到
|
|
||||||
5 0 * * * node /scripts/jd_ccSign.js >> /scripts/logs/jd_ccSign.log 2>&1
|
|
||||||
#邀请有礼
|
|
||||||
20 9 * * * node /scripts/jd_yqyl.js >> /scripts/logs/jd_yqyl.log 2>&1
|
|
||||||
#
|
|
||||||
20 3,6,9 * * * node /scripts/jd_dreamfactory_tuan.js >> /scripts/logs/jd_dreamfactory_tuan.log 2>&1
|
|
||||||
#京喜领红包
|
|
||||||
23 0,6,12,21 * * * node /scripts/jd_jxlhb.js >> /scripts/logs/jd_jxlhb.log 2>&1
|
|
||||||
#超级直播间盲盒抽京豆
|
|
||||||
1 18,20 * * * node /scripts/jd_super_mh.js >> /scripts/logs/jd_super_mh.log 2>&1
|
|
||||||
# 内容鉴赏官
|
|
||||||
5 2,5,16 * * * node /scripts/jd_connoisseur.js >> /scripts/logs/jd_connoisseur.log 2>&1
|
|
||||||
# 京喜财富岛月饼
|
|
||||||
5 * * * * node /scripts/jd_cfd_mooncake.js >> /scripts/logs/jd_cfd_mooncake.log 2>&1
|
|
||||||
# 东东世界
|
|
||||||
15 3,16 * * * node /scripts/jd_ddworld.js >> /scripts/logs/jd_ddworld.log 2>&1
|
|
||||||
# 小魔方
|
|
||||||
31 2,8 * * * node /scripts/jd_mf.js >> /scripts/logs/jd_mf.log 2>&1
|
|
||||||
# 魔方
|
|
||||||
11 7,19 * * * node /scripts/jd_mofang.js >> /scripts/logs/jd_mofang.log 2>&1
|
|
||||||
# 芥么签到
|
|
||||||
11 0,9 * * * node /scripts/jd_jmsign.js >> /scripts/logs/jd_jmsign.log 2>&1
|
|
||||||
# 芥么赚豪礼
|
|
||||||
37 0,11 * * * node /scripts/jd_jmzhl.js >> /scripts/logs/jd_jmzhl.log 2>&1
|
|
||||||
# 幸运扭蛋
|
|
||||||
24 9 * 10-11 * node /scripts/jd_lucky_egg.js >> /scripts/logs/jd_lucky_egg.log 2>&1
|
|
||||||
# 东东世界兑换
|
|
||||||
0 0 * * * node /scripts/jd_ddworld_exchange.js >> /scripts/logs/jd_ddworld_exchange.log 2>&1
|
|
||||||
# 天天提鹅
|
|
||||||
20 * * * * node /scripts/jd_daily_egg.js >> /scripts/logs/jd_daily_egg.log 2>&1
|
|
||||||
# 发财大赢家
|
|
||||||
1 2,10 * * * node /scripts/jd_fcdyj.js >> /scripts/logs/jd_fcdyj.log 2>&1
|
|
||||||
# 翻翻乐
|
|
||||||
20 * * * * node /scripts/jd_big_winner.js >> /scripts/logs/jd_big_winner.log 2>&1
|
|
||||||
# 京东极速版签到免单
|
|
||||||
18 8,12,20 * * * node /scripts/jd_speed_signfree.js >> /scripts/logs/jd_speed_signfree.log 2>&1
|
|
||||||
# 牛牛福利
|
|
||||||
1 9,19 * * * node /scripts/jd_nnfl.js >> /scripts/logs/jd_nnfl.log 2>&1
|
|
||||||
#赚京豆
|
|
||||||
10,40 0,1 * * * node /scripts/jd_syj.js >> /scripts/logs/jd_syj.log 2>&1
|
|
||||||
#搞基大神-饭粒
|
|
||||||
46 1,19 * * * node /scripts/jd_fanli.js >> /scripts/logs/jd_fanli.log 2>&1
|
|
||||||
#农场集勋章
|
|
||||||
16 7,16 * * * node /scripts/jd_medal.js >> /scripts/logs/jd_medal.log 2>&1
|
|
||||||
#京东签到翻牌
|
|
||||||
10 8,18 * * * node /scripts/jd_sign_graphics.js >> /scripts/logs/jd_sign_graphics.log 2>&1
|
|
||||||
#京喜财富岛合成生鲜
|
|
||||||
45 * * * * node /scripts/jd_cfd_fresh.js >> /scripts/logs/jd_cfd_fresh.log 2>&1
|
|
||||||
#财富岛珍珠兑换
|
|
||||||
59 0-23/1 * * * node /scripts/jd_cfd_pearl_ex.js >> /scripts/logs/jd_cfd_pearl_ex.log 2>&1
|
|
||||||
#美丽研究院--兑换
|
|
||||||
1 7,12,19 * * * node /scripts/jd_beauty_ex.js >> /scripts/logs/jd_beauty_ex.log 2>&1
|
|
||||||
#锦鲤
|
|
||||||
5 0 * * * node /scripts/jd_angryKoi.js >> /scripts/logs/jd_angryKoi.log 2>&1
|
|
||||||
#京东赚京豆一分钱抽奖
|
|
||||||
10 0 * * * node /scripts/jd_lottery_drew.js >> /scripts/logs/jd_lottery_drew.log 2>&1
|
|
||||||
#京东保价
|
|
||||||
41 23 * * * node /scripts/jd_price.js >> /scripts/logs/jd_price.log 2>&1
|
|
||||||
#金榜年终奖
|
|
||||||
10 0,2 * * * node /scripts/jd_split.js >> /scripts/logs/jd_split.log 2>&1
|
|
||||||
#京东小魔方--收集兑换
|
|
||||||
10 7 * * * node /scripts/jd_mofang_ex.js >> /scripts/logs/jd_mofang_ex.log 2>&1
|
|
||||||
#骁龙
|
|
||||||
10 9,17 * * * node /scripts/jd_xiaolong.js >> /scripts/logs/jd_xiaolong.log 2>&1
|
|
||||||
#京东我的理想家
|
|
||||||
10 7 * * * node /scripts/jd_lxLottery.js >> /scripts/logs/jd_lxLottery.log 2>&1
|
|
||||||
#京豆兑换为喜豆
|
|
||||||
33 9 * * * node /scripts/jd_exchangejxbeans.js >> /scripts/logs/jd_exchangejxbeans.log 2>&1
|
|
||||||
#早起签到
|
|
||||||
1 6,7 * * * python3 /jd/scripts/jd_zqfl.py >> /jd/log/jd_zqfl.log 2>&1
|
|
||||||
@ -1,252 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# 放在这个初始化python3环境,目的减小镜像体积,一些不需要使用bot交互的用户可以不用拉体积比较大的镜像
|
|
||||||
# 在这个任务里面还有初始化还有目的就是为了方便bot更新了新功能的话只需要重启容器就完成更新
|
|
||||||
function initPythonEnv() {
|
|
||||||
echo "开始安装运行jd_bot需要的python环境及依赖..."
|
|
||||||
apk add --update python3-dev py3-pip py3-cryptography py3-numpy py-pillow
|
|
||||||
echo "开始安装jd_bot依赖..."
|
|
||||||
#测试
|
|
||||||
#cd /jd_docker/docker/bot
|
|
||||||
#合并
|
|
||||||
cd /scripts/docker/bot
|
|
||||||
pip3 install --upgrade pip
|
|
||||||
pip3 install -r requirements.txt
|
|
||||||
python3 setup.py install
|
|
||||||
}
|
|
||||||
|
|
||||||
#启动tg bot交互前置条件成立,开始安装配置环境
|
|
||||||
if [ "$1" == "True" ]; then
|
|
||||||
initPythonEnv
|
|
||||||
if [ -z "$DISABLE_SPNODE" ]; then
|
|
||||||
echo "增加命令组合spnode ,使用该命令spnode jd_xxxx.js 执行js脚本会读取cookies.conf里面的jd cokie账号来执行脚本"
|
|
||||||
(
|
|
||||||
cat <<EOF
|
|
||||||
#!/bin/sh
|
|
||||||
set -e
|
|
||||||
first=\$1
|
|
||||||
cmd=\$*
|
|
||||||
echo \${cmd/\$1/}
|
|
||||||
if [ \$1 == "conc" ]; then
|
|
||||||
for job in \$(cat \$COOKIES_LIST | grep -v "#" | paste -s -d ' '); do
|
|
||||||
{ export JD_COOKIE=\$job && node \${cmd/\$1/}
|
|
||||||
}&
|
|
||||||
done
|
|
||||||
elif [ -n "\$(echo \$first | sed -n "/^[0-9]\+\$/p")" ]; then
|
|
||||||
echo "\$(echo \$first | sed -n "/^[0-9]\+\$/p")"
|
|
||||||
{ export JD_COOKIE=\$(sed -n "\${first}p" \$COOKIES_LIST) && node \${cmd/\$1/}
|
|
||||||
}&
|
|
||||||
elif [ -n "\$(cat \$COOKIES_LIST | grep "pt_pin=\$first")" ];then
|
|
||||||
echo "\$(cat \$COOKIES_LIST | grep "pt_pin=\$first")"
|
|
||||||
{ export JD_COOKIE=\$(cat \$COOKIES_LIST | grep "pt_pin=\$first") && node \${cmd/\$1/}
|
|
||||||
}&
|
|
||||||
else
|
|
||||||
{ export JD_COOKIE=\$(cat \$COOKIES_LIST | grep -v "#" | paste -s -d '&') && node \$*
|
|
||||||
}&
|
|
||||||
fi
|
|
||||||
EOF
|
|
||||||
) >/usr/local/bin/spnode
|
|
||||||
chmod +x /usr/local/bin/spnode
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "spnode需要使用的到,cookie写入文件,该文件同时也为jd_bot扫码获自动取cookies服务"
|
|
||||||
if [ -z "$JD_COOKIE" ]; then
|
|
||||||
if [ ! -f "$COOKIES_LIST" ]; then
|
|
||||||
echo "" >"$COOKIES_LIST"
|
|
||||||
echo "未配置JD_COOKIE环境变量,$COOKIES_LIST文件已生成,请将cookies写入$COOKIES_LIST文件,格式每个Cookie一行"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if [ -f "$COOKIES_LIST" ]; then
|
|
||||||
echo "cookies.conf文件已经存在跳过,如果需要更新cookie请修改$COOKIES_LIST文件内容"
|
|
||||||
else
|
|
||||||
echo "环境变量 cookies写入$COOKIES_LIST文件,如果需要更新cookie请修改cookies.conf文件内容"
|
|
||||||
echo $JD_COOKIE | sed "s/[ &]/\\n/g" | sed "/^$/d" >$COOKIES_LIST
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
CODE_GEN_CONF=/scripts/logs/code_gen_conf.list
|
|
||||||
echo "生成互助消息需要使用的到的 logs/code_gen_conf.list 文件,后续需要自己根据说明维护更新删除..."
|
|
||||||
if [ ! -f "$CODE_GEN_CONF" ]; then
|
|
||||||
(
|
|
||||||
cat <<EOF
|
|
||||||
#格式为
|
|
||||||
#互助类型-机器人ID-提交代码(根据bot作者配置得来)-活动脚本日志文件名-活动代码(根据bot作者配置得来)-查找互助码需要用到的定位字符串
|
|
||||||
#长期活动示例
|
|
||||||
#long-@TuringLabbot-jd_sgmh.log-sgmh-暂无
|
|
||||||
#临时活动示例
|
|
||||||
#temp-@TuringLabbot-jd_sgmh.log-sgmh-暂无
|
|
||||||
#每天变化活动示例
|
|
||||||
#daily-@TuringLabbot-jd_818.log-818-暂无
|
|
||||||
|
|
||||||
#种豆得豆
|
|
||||||
long-@TuringLabbot-/submit_activity_codes-jd_plantBean.log-bean-种豆得豆好友互助码】
|
|
||||||
#京东农场
|
|
||||||
long-@TuringLabbot-/submit_activity_codes-jd_fruit.log-farm-东东农场好友互助码】
|
|
||||||
#京东萌宠
|
|
||||||
long-@TuringLabbot-/submit_activity_codes-jd_pet.log-pet-东东萌宠好友互助码】
|
|
||||||
#东东工厂
|
|
||||||
long-@TuringLabbot-/submit_activity_codes-jd_jdfactory.log-ddfactory-东东工厂好友互助码】
|
|
||||||
#京喜工厂
|
|
||||||
long-@TuringLabbot-/submit_activity_codes-jd_dreamFactory.log-jxfactory-京喜工厂好友互助码】
|
|
||||||
#临时活动
|
|
||||||
temp-@TuringLabbot-/submit_activity_codes-jd_sgmh.log-sgmh-您的好友助力码为:
|
|
||||||
#临时活动
|
|
||||||
temp-@TuringLabbot-/submit_activity_codes-jd_cfd.log-jxcfd-主】你的互助码:
|
|
||||||
temp-@TuringLabbot-/submit_activity_codes-jd_global.log-jdglobal-好友助力码为
|
|
||||||
|
|
||||||
#分红狗活动
|
|
||||||
long-@LvanLamCommitCodeBot-/jdcrazyjoy-jd_crazy_joy.log-@N-crazyJoy任务好友互助码】
|
|
||||||
#签到领现金
|
|
||||||
long-@LvanLamCommitCodeBot-/jdcash-jd_cash.log-@N-您的助力码为
|
|
||||||
#京东赚赚
|
|
||||||
long-@LvanLamCommitCodeBot-/jdzz-jd_jdzz.log-@N-京东赚赚好友互助码】
|
|
||||||
EOF
|
|
||||||
) >$CODE_GEN_CONF
|
|
||||||
else
|
|
||||||
echo "logs/code_gen_conf.list 文件已经存在跳过初始化操作"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "容器jd_bot交互所需环境已配置安装已完成..."
|
|
||||||
curl -sX POST "https://api.telegram.org/bot$TG_BOT_TOKEN/sendMessage" -d "chat_id=$TG_USER_ID&text=恭喜🎉你获得feature容器jd_bot交互所需环境已配置安装已完成,并启用。请发送 /help 查看使用帮助。如需禁用请在docker-compose.yml配置 DISABLE_BOT_COMMAND=True" >>/dev/null
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
#echo "暂停更新配置,不要尝试删掉这个文件,你的容器可能会起不来"
|
|
||||||
#echo '' >/scripts/logs/pull.lock
|
|
||||||
|
|
||||||
echo "定义定时任务合并处理用到的文件路径..."
|
|
||||||
defaultListFile="/scripts/docker/$DEFAULT_LIST_FILE"
|
|
||||||
echo "默认文件定时任务文件路径为 ${defaultListFile}"
|
|
||||||
mergedListFile="/scripts/docker/merged_list_file.sh"
|
|
||||||
echo "合并后定时任务文件路径为 ${mergedListFile}"
|
|
||||||
|
|
||||||
echo "第1步将默认定时任务列表添加到并后定时任务文件..."
|
|
||||||
cat $defaultListFile >$mergedListFile
|
|
||||||
|
|
||||||
echo "第2步判断是否存在自定义任务任务列表并追加..."
|
|
||||||
if [ $CUSTOM_LIST_FILE ]; then
|
|
||||||
echo "您配置了自定义任务文件:$CUSTOM_LIST_FILE,自定义任务类型为:$CUSTOM_LIST_MERGE_TYPE..."
|
|
||||||
# 无论远程还是本地挂载, 均复制到 $customListFile
|
|
||||||
customListFile="/scripts/docker/custom_list_file.sh"
|
|
||||||
echo "自定义定时任务文件临时工作路径为 ${customListFile}"
|
|
||||||
if expr "$CUSTOM_LIST_FILE" : 'http.*' &>/dev/null; then
|
|
||||||
echo "自定义任务文件为远程脚本,开始下载自定义远程任务。"
|
|
||||||
wget -O $customListFile $CUSTOM_LIST_FILE
|
|
||||||
echo "下载完成..."
|
|
||||||
elif [ -f /scripts/docker/$CUSTOM_LIST_FILE ]; then
|
|
||||||
echo "自定义任务文件为本地挂载。"
|
|
||||||
cp /scripts/docker/$CUSTOM_LIST_FILE $customListFile
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f "$customListFile" ]; then
|
|
||||||
if [ $CUSTOM_LIST_MERGE_TYPE == "append" ]; then
|
|
||||||
echo "合并默认定时任务文件:$DEFAULT_LIST_FILE 和 自定义定时任务文件:$CUSTOM_LIST_FILE"
|
|
||||||
echo -e "" >>$mergedListFile
|
|
||||||
cat $customListFile >>$mergedListFile
|
|
||||||
elif [ $CUSTOM_LIST_MERGE_TYPE == "overwrite" ]; then
|
|
||||||
echo "配置了自定义任务文件:$CUSTOM_LIST_FILE,自定义任务类型为:$CUSTOM_LIST_MERGE_TYPE..."
|
|
||||||
cat $customListFile >$mergedListFile
|
|
||||||
else
|
|
||||||
echo "配置配置了错误的自定义定时任务类型:$CUSTOM_LIST_MERGE_TYPE,自定义任务类型为只能为append或者overwrite..."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "配置的自定义任务文件:$CUSTOM_LIST_FILE未找到,使用默认配置$DEFAULT_LIST_FILE..."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "当前只使用了默认定时任务文件 $DEFAULT_LIST_FILE ..."
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "第3步判断是否配置了随机延迟参数..."
|
|
||||||
if [ $RANDOM_DELAY_MAX ]; then
|
|
||||||
if [ $RANDOM_DELAY_MAX -ge 1 ]; then
|
|
||||||
echo "已设置随机延迟为 $RANDOM_DELAY_MAX , 设置延迟任务中..."
|
|
||||||
sed -i "/\(jd_bean_sign.js\|jd_blueCoin.js\|jd_joy_reward.js\|jd_joy_steal.js\|jd_joy_feedPets.js\|jd_car_exchange.js\)/!s/node/sleep \$((RANDOM % \$RANDOM_DELAY_MAX)); node/g" $mergedListFile
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "未配置随机延迟对应的环境变量,故不设置延迟任务..."
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "第4步判断是否配置自定义shell执行脚本..."
|
|
||||||
if [ 0"$CUSTOM_SHELL_FILE" = "0" ]; then
|
|
||||||
echo "未配置自定shell脚本文件,跳过执行。"
|
|
||||||
else
|
|
||||||
if expr "$CUSTOM_SHELL_FILE" : 'http.*' &>/dev/null; then
|
|
||||||
echo "自定义shell脚本为远程脚本,开始下载自定义远程脚本。"
|
|
||||||
wget -O /scripts/docker/shell_script_mod.sh $CUSTOM_SHELL_FILE
|
|
||||||
echo "下载完成,开始执行..."
|
|
||||||
echo "#远程自定义shell脚本追加定时任务" >>$mergedListFile
|
|
||||||
sh -x /scripts/docker/shell_script_mod.sh
|
|
||||||
echo "自定义远程shell脚本下载并执行结束。"
|
|
||||||
else
|
|
||||||
if [ ! -f $CUSTOM_SHELL_FILE ]; then
|
|
||||||
echo "自定义shell脚本为docker挂载脚本文件,但是指定挂载文件不存在,跳过执行。"
|
|
||||||
else
|
|
||||||
echo "docker挂载的自定shell脚本,开始执行..."
|
|
||||||
echo "#docker挂载自定义shell脚本追加定时任务" >>$mergedListFile
|
|
||||||
sh -x $CUSTOM_SHELL_FILE
|
|
||||||
echo "docker挂载的自定shell脚本,执行结束。"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "第5步删除不运行的脚本任务..."
|
|
||||||
if [ $DO_NOT_RUN_SCRIPTS ]; then
|
|
||||||
echo "您配置了不运行的脚本:$DO_NOT_RUN_SCRIPTS"
|
|
||||||
arr=${DO_NOT_RUN_SCRIPTS//&/ }
|
|
||||||
for item in $arr; do
|
|
||||||
sed -ie '/'"${item}"'/d' ${mergedListFile}
|
|
||||||
done
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "第6步设定下次运行docker_entrypoint.sh时间..."
|
|
||||||
echo "删除原有docker_entrypoint.sh任务"
|
|
||||||
sed -ie '/'docker_entrypoint.sh'/d' ${mergedListFile}
|
|
||||||
|
|
||||||
# 12:00前生成12:00后的cron,12:00后生成第二天12:00前的cron,一天只更新两次代码
|
|
||||||
if [ $(date +%-H) -lt 12 ]; then
|
|
||||||
random_h=$(($RANDOM % 12 + 12))
|
|
||||||
else
|
|
||||||
random_h=$(($RANDOM % 12))
|
|
||||||
fi
|
|
||||||
random_m=$(($RANDOM % 60))
|
|
||||||
|
|
||||||
echo "设定 docker_entrypoint.sh cron为:"
|
|
||||||
echo -e "\n# 必须要的默认定时任务请勿删除" >>$mergedListFile
|
|
||||||
echo -e "${random_m} ${random_h} * * * docker_entrypoint.sh >> /scripts/logs/default_task.log 2>&1" | tee -a $mergedListFile
|
|
||||||
|
|
||||||
echo "第7步 自动助力"
|
|
||||||
if [ -n "$ENABLE_AUTO_HELP" ]; then
|
|
||||||
#直接判断变量,如果未配置,会导致sh抛出一个错误,所以加了上面一层
|
|
||||||
if [ "$ENABLE_AUTO_HELP" = "true" ]; then
|
|
||||||
echo "开启自动助力"
|
|
||||||
#在所有脚本执行前,先执行助力码导出
|
|
||||||
sed -i 's/node/ . \/scripts\/docker\/auto_help.sh export > \/scripts\/logs\/auto_help_export.log \&\& node /g' ${mergedListFile}
|
|
||||||
else
|
|
||||||
echo "未开启自动助力"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "第8步增加 |ts 任务日志输出时间戳..."
|
|
||||||
sed -i "/\( ts\| |ts\|| ts\)/!s/>>/\|ts >>/g" $mergedListFile
|
|
||||||
|
|
||||||
echo "第9步执行proc_file.sh脚本任务..."
|
|
||||||
sh /scripts/docker/proc_file.sh
|
|
||||||
|
|
||||||
echo "第10步加载最新的定时任务文件..."
|
|
||||||
if [[ -f /usr/bin/jd_bot && -z "$DISABLE_SPNODE" ]]; then
|
|
||||||
echo "bot交互与spnode 前置条件成立,替换任务列表的node指令为spnode"
|
|
||||||
sed -i "s/ node / spnode /g" $mergedListFile
|
|
||||||
#conc每个cookies独立并行执行脚本示例,cookies数量多使用该功能可能导致内存爆掉,默认不开启 有需求,请在自定义shell里面实现
|
|
||||||
#sed -i "/\(jd_xtg.js\|jd_car_exchange.js\)/s/spnode/spnode conc/g" $mergedListFile
|
|
||||||
fi
|
|
||||||
crontab $mergedListFile
|
|
||||||
|
|
||||||
echo "第11步将仓库的docker_entrypoint.sh脚本更新至系统/usr/local/bin/docker_entrypoint.sh内..."
|
|
||||||
cat /scripts/docker/docker_entrypoint.sh >/usr/local/bin/docker_entrypoint.sh
|
|
||||||
|
|
||||||
echo "发送通知"
|
|
||||||
export NOTIFY_CONTENT=""
|
|
||||||
cd /scripts/docker
|
|
||||||
node notify_docker_user.js
|
|
||||||
@ -1,57 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
set -e
|
|
||||||
|
|
||||||
#获取配置的自定义参数
|
|
||||||
if [ -n "$1" ]; then
|
|
||||||
run_cmd=$1
|
|
||||||
fi
|
|
||||||
|
|
||||||
(
|
|
||||||
if [ -f "/scripts/logs/pull.lock" ]; then
|
|
||||||
echo "存在更新锁定文件,跳过git pull操作..."
|
|
||||||
else
|
|
||||||
echo "设定远程仓库地址..."
|
|
||||||
cd /scripts
|
|
||||||
git remote set-url origin "$REPO_URL"
|
|
||||||
git reset --hard
|
|
||||||
echo "git pull拉取最新代码..."
|
|
||||||
git -C /scripts pull --rebase
|
|
||||||
echo "npm install 安装最新依赖"
|
|
||||||
npm install --prefix /scripts
|
|
||||||
fi
|
|
||||||
) || exit 0
|
|
||||||
|
|
||||||
# 默认启动telegram交互机器人的条件
|
|
||||||
# 确认容器启动时调用的docker_entrypoint.sh
|
|
||||||
# 必须配置TG_BOT_TOKEN、TG_USER_ID,
|
|
||||||
# 且未配置DISABLE_BOT_COMMAND禁用交互,
|
|
||||||
# 且未配置自定义TG_API_HOST,因为配置了该变量,说明该容器环境可能并能科学的连到telegram服务器
|
|
||||||
if [[ -n "$run_cmd" && -n "$TG_BOT_TOKEN" && -n "$TG_USER_ID" && -z "$DISABLE_BOT_COMMAND" && -z "$TG_API_HOST" ]]; then
|
|
||||||
ENABLE_BOT_COMMAND=True
|
|
||||||
else
|
|
||||||
ENABLE_BOT_COMMAND=False
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "------------------------------------------------执行定时任务任务shell脚本------------------------------------------------"
|
|
||||||
#测试
|
|
||||||
# sh /jd_docker/docker/default_task.sh "$ENABLE_BOT_COMMAND" "$run_cmd"
|
|
||||||
#合并
|
|
||||||
sh /scripts/docker/default_task.sh "$ENABLE_BOT_COMMAND" "$run_cmd"
|
|
||||||
echo "--------------------------------------------------默认定时任务执行完成---------------------------------------------------"
|
|
||||||
|
|
||||||
if [ -n "$run_cmd" ]; then
|
|
||||||
# 增加一层jd_bot指令已经正确安装成功校验
|
|
||||||
# 以上条件都满足后会启动jd_bot交互,否还是按照以前的模式启动,最大程度避免现有用户改动调整
|
|
||||||
if [[ "$ENABLE_BOT_COMMAND" == "True" && -f /usr/bin/jd_bot ]]; then
|
|
||||||
echo "启动crontab定时任务主进程..."
|
|
||||||
crond
|
|
||||||
echo "启动telegram bot指令交主进程..."
|
|
||||||
jd_bot
|
|
||||||
else
|
|
||||||
echo "启动crontab定时任务主进程..."
|
|
||||||
crond -f
|
|
||||||
fi
|
|
||||||
|
|
||||||
else
|
|
||||||
echo "默认定时任务执行结束。"
|
|
||||||
fi
|
|
||||||
@ -1,62 +0,0 @@
|
|||||||
jd_scripts:
|
|
||||||
image: lxk0301/jd_scripts
|
|
||||||
# 配置服务器资源约束。此例子中服务被限制为使用内存不超过200M以及cpu不超过0.2(单核的20%)
|
|
||||||
# 经过实际测试,建议不低于200M
|
|
||||||
# deploy:
|
|
||||||
# resources:
|
|
||||||
# limits:
|
|
||||||
# cpus: '0.2'
|
|
||||||
# memory: 200M
|
|
||||||
container_name: jd_scripts
|
|
||||||
restart: always
|
|
||||||
volumes:
|
|
||||||
- ./my_crontab_list.sh:/scripts/docker/my_crontab_list.sh
|
|
||||||
- ./logs:/scripts/logs
|
|
||||||
tty: true
|
|
||||||
# 因为更换仓库地址可能git pull的dns解析不到,可以在配置追加hosts
|
|
||||||
extra_hosts:
|
|
||||||
- "gitee.com:180.97.125.228"
|
|
||||||
- "github.com:13.229.188.59"
|
|
||||||
- "raw.githubusercontent.com:151.101.228.133"
|
|
||||||
environment:
|
|
||||||
#脚本更新仓库地址,配置了会切换到对应的地址
|
|
||||||
- REPO_URL=git@gitee.com:lxk0301/jd_scripts.git
|
|
||||||
# 注意环境变量填写值的时候一律不需要引号(""或者'')下面这些只是示例,根据自己的需求增加删除
|
|
||||||
#jd cookies
|
|
||||||
# 例: JD_COOKIE=pt_key=XXX;pt_pin=XXX;
|
|
||||||
# 例(多账号): JD_COOKIE=pt_key=XXX;pt_pin=XXX;&pt_key=XXX;pt_pin=XXX;&pt_key=XXX;pt_pin=XXX;
|
|
||||||
- JD_COOKIE=
|
|
||||||
#微信server酱通知
|
|
||||||
- PUSH_KEY=
|
|
||||||
#Bark App通知
|
|
||||||
- BARK_PUSH=
|
|
||||||
#telegram机器人通知
|
|
||||||
- TG_BOT_TOKEN=
|
|
||||||
- TG_USER_ID=
|
|
||||||
#钉钉机器人通知
|
|
||||||
- DD_BOT_TOKEN=
|
|
||||||
- DD_BOT_SECRET=
|
|
||||||
#企业微信机器人通知
|
|
||||||
- QYWX_KEY=
|
|
||||||
#京东种豆得豆
|
|
||||||
- PLANT_BEAN_SHARECODES=
|
|
||||||
#京东农场
|
|
||||||
# 例: FRUITSHARECODES=京东农场的互助码
|
|
||||||
- FRUITSHARECODES=
|
|
||||||
#京东萌宠
|
|
||||||
# 例: PETSHARECODES=东东萌宠的互助码
|
|
||||||
- PETSHARECODES=
|
|
||||||
# 宠汪汪的喂食数量
|
|
||||||
- JOY_FEED_COUNT=
|
|
||||||
#东东超市
|
|
||||||
# - SUPERMARKET_SHARECODES=
|
|
||||||
#兑换多少数量的京豆(20,或者1000京豆,或者其他奖品的文字)
|
|
||||||
# 例: MARKET_COIN_TO_BEANS=1000
|
|
||||||
- MARKET_COIN_TO_BEANS=
|
|
||||||
#如果设置了 RANDOM_DELAY_MAX ,则会启用随机延迟功能,延迟随机 0 到 RANDOM_DELAY_MAX-1 秒。如果不设置此项,则不使用延迟。
|
|
||||||
#并不是所有的脚本都会被启用延迟,因为有一些脚本需要整点触发。延迟的目的有两个,1是降低抢占cpu资源几率,2是降低检查风险(主要是1)
|
|
||||||
#填写数字,单位为秒,比如写为 RANDOM_DELAY_MAX=30 就是随机产生0到29之间的一个秒数,执行延迟的意思。
|
|
||||||
- RANDOM_DELAY_MAX=120
|
|
||||||
#使用自定义定任务追加默认任务之后,上面volumes挂载之后这里配置对应的文件名
|
|
||||||
- CUSTOM_LIST_FILE=my_crontab_list.sh
|
|
||||||
|
|
||||||
@ -1,62 +0,0 @@
|
|||||||
jd_scripts:
|
|
||||||
image: lxk0301/jd_scripts
|
|
||||||
# 配置服务器资源约束。此例子中服务被限制为使用内存不超过200M以及cpu不超过0.2(单核的20%)
|
|
||||||
# 经过实际测试,建议不低于200M
|
|
||||||
# deploy:
|
|
||||||
# resources:
|
|
||||||
# limits:
|
|
||||||
# cpus: '0.2'
|
|
||||||
# memory: 200M
|
|
||||||
container_name: jd_scripts
|
|
||||||
restart: always
|
|
||||||
volumes:
|
|
||||||
- ./my_crontab_list.sh:/scripts/docker/my_crontab_list.sh
|
|
||||||
- ./logs:/scripts/logs
|
|
||||||
tty: true
|
|
||||||
# 因为更换仓库地址可能git pull的dns解析不到,可以在配置追加hosts
|
|
||||||
extra_hosts:
|
|
||||||
- "gitee.com:180.97.125.228"
|
|
||||||
- "github.com:13.229.188.59"
|
|
||||||
- "raw.githubusercontent.com:151.101.228.133"
|
|
||||||
environment:
|
|
||||||
#脚本更新仓库地址,配置了会切换到对应的地址
|
|
||||||
- REPO_URL=git@gitee.com:lxk0301/jd_scripts.git
|
|
||||||
# 注意环境变量填写值的时候一律不需要引号(""或者'')下面这些只是示例,根据自己的需求增加删除
|
|
||||||
#jd cookies
|
|
||||||
# 例: JD_COOKIE=pt_key=XXX;pt_pin=XXX;
|
|
||||||
#例(多账号): JD_COOKIE=pt_key=XXX;pt_pin=XXX;&pt_key=XXX;pt_pin=XXX;&pt_key=XXX;pt_pin=XXX;
|
|
||||||
- JD_COOKIE=
|
|
||||||
#微信server酱通知
|
|
||||||
- PUSH_KEY=
|
|
||||||
#Bark App通知
|
|
||||||
- BARK_PUSH=
|
|
||||||
#telegram机器人通知
|
|
||||||
- TG_BOT_TOKEN=
|
|
||||||
- TG_USER_ID=
|
|
||||||
#钉钉机器人通知
|
|
||||||
- DD_BOT_TOKEN=
|
|
||||||
- DD_BOT_SECRET=
|
|
||||||
#企业微信机器人通知
|
|
||||||
- QYWX_KEY=
|
|
||||||
#京东种豆得豆
|
|
||||||
- PLANT_BEAN_SHARECODES=
|
|
||||||
#京东农场
|
|
||||||
# 例: FRUITSHARECODES=京东农场的互助码
|
|
||||||
- FRUITSHARECODES=
|
|
||||||
#京东萌宠
|
|
||||||
# 例: PETSHARECODES=东东萌宠的互助码
|
|
||||||
- PETSHARECODES=
|
|
||||||
# 宠汪汪的喂食数量
|
|
||||||
- JOY_FEED_COUNT=
|
|
||||||
#东东超市
|
|
||||||
# - SUPERMARKET_SHARECODES=
|
|
||||||
#兑换多少数量的京豆(20,或者1000京豆,或者其他奖品的文字)
|
|
||||||
# 例: MARKET_COIN_TO_BEANS=1000
|
|
||||||
- MARKET_COIN_TO_BEANS=
|
|
||||||
#如果设置了 RANDOM_DELAY_MAX ,则会启用随机延迟功能,延迟随机 0 到 RANDOM_DELAY_MAX-1 秒。如果不设置此项,则不使用延迟。
|
|
||||||
#并不是所有的脚本都会被启用延迟,因为有一些脚本需要整点触发。延迟的目的有两个,1是降低抢占cpu资源几率,2是降低检查风险(主要是1)
|
|
||||||
#填写数字,单位为秒,比如写为 RANDOM_DELAY_MAX=30 就是随机产生0到29之间的一个秒数,执行延迟的意思。
|
|
||||||
- RANDOM_DELAY_MAX=120
|
|
||||||
#使用自定义定任务覆盖默认任务,上面volumes挂载之后这里配置对应的文件名,和自定义文件使用方式为overwrite
|
|
||||||
- CUSTOM_LIST_FILE=my_crontab_list.sh
|
|
||||||
- CUSTOM_LIST_MERGE_TYPE=overwrite
|
|
||||||
@ -1,59 +0,0 @@
|
|||||||
jd_scripts:
|
|
||||||
image: lxk0301/jd_scripts
|
|
||||||
# 配置服务器资源约束。此例子中服务被限制为使用内存不超过200M以及cpu不超过0.2(单核的20%)
|
|
||||||
# 经过实际测试,建议不低于200M
|
|
||||||
# deploy:
|
|
||||||
# resources:
|
|
||||||
# limits:
|
|
||||||
# cpus: '0.2'
|
|
||||||
# memory: 200M
|
|
||||||
container_name: jd_scripts
|
|
||||||
restart: always
|
|
||||||
volumes:
|
|
||||||
- ./logs:/scripts/logs
|
|
||||||
tty: true
|
|
||||||
# 因为更换仓库地址可能git pull的dns解析不到,可以在配置追加hosts
|
|
||||||
extra_hosts:
|
|
||||||
- "gitee.com:180.97.125.228"
|
|
||||||
- "github.com:13.229.188.59"
|
|
||||||
- "raw.githubusercontent.com:151.101.228.133"
|
|
||||||
environment:
|
|
||||||
#脚本更新仓库地址,配置了会切换到对应的地址
|
|
||||||
- REPO_URL=git@gitee.com:lxk0301/jd_scripts.git
|
|
||||||
# 注意环境变量填写值的时候一律不需要引号(""或者'')下面这些只是示例,根据自己的需求增加删除
|
|
||||||
#jd cookies
|
|
||||||
# 例: JD_COOKIE=pt_key=XXX;pt_pin=XXX;
|
|
||||||
# 例(多账号): JD_COOKIE=pt_key=XXX;pt_pin=XXX;&pt_key=XXX;pt_pin=XXX;&pt_key=XXX;pt_pin=XXX;
|
|
||||||
- JD_COOKIE=
|
|
||||||
#微信server酱通知
|
|
||||||
- PUSH_KEY=
|
|
||||||
#Bark App通知
|
|
||||||
- BARK_PUSH=
|
|
||||||
#telegram机器人通知
|
|
||||||
- TG_BOT_TOKEN=
|
|
||||||
- TG_USER_ID=
|
|
||||||
#钉钉机器人通知
|
|
||||||
- DD_BOT_TOKEN=
|
|
||||||
- DD_BOT_SECRET=
|
|
||||||
#企业微信机器人通知
|
|
||||||
- QYWX_KEY=
|
|
||||||
#京东种豆得豆
|
|
||||||
- PLANT_BEAN_SHARECODES=
|
|
||||||
#京东农场
|
|
||||||
# 例: FRUITSHARECODES=京东农场的互助码
|
|
||||||
- FRUITSHARECODES=
|
|
||||||
#京东萌宠
|
|
||||||
# 例: PETSHARECODES=东东萌宠的互助码
|
|
||||||
- PETSHARECODES=
|
|
||||||
# 宠汪汪的喂食数量
|
|
||||||
- JOY_FEED_COUNT=
|
|
||||||
#东东超市
|
|
||||||
# - SUPERMARKET_SHARECODES=
|
|
||||||
#兑换多少数量的京豆(20,或者1000京豆,或者其他奖品的文字)
|
|
||||||
# 例: MARKET_COIN_TO_BEANS=1000
|
|
||||||
- MARKET_COIN_TO_BEANS=
|
|
||||||
|
|
||||||
#如果设置了 RANDOM_DELAY_MAX ,则会启用随机延迟功能,延迟随机 0 到 RANDOM_DELAY_MAX-1 秒。如果不设置此项,则不使用延迟。
|
|
||||||
#并不是所有的脚本都会被启用延迟,因为有一些脚本需要整点触发。延迟的目的有两个,1是降低抢占cpu资源几率,2是降低检查风险(主要是1)
|
|
||||||
#填写数字,单位为秒,比如写为 RANDOM_DELAY_MAX=30 就是随机产生0到29之间的一个秒数,执行延迟的意思。
|
|
||||||
- RANDOM_DELAY_MAX=120
|
|
||||||
@ -1,83 +0,0 @@
|
|||||||
### 使用此方式,请先理解学会使用[docker办法一](https://github.com/LXK9301/jd_scripts/tree/master/docker#%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E7%9B%AE%E5%BD%95jd_scripts%E7%94%A8%E4%BA%8E%E5%AD%98%E6%94%BE%E5%A4%87%E4%BB%BD%E9%85%8D%E7%BD%AE%E7%AD%89%E6%95%B0%E6%8D%AE%E8%BF%81%E7%A7%BB%E9%87%8D%E8%A3%85%E7%9A%84%E6%97%B6%E5%80%99%E5%8F%AA%E9%9C%80%E8%A6%81%E5%A4%87%E4%BB%BD%E6%95%B4%E4%B8%AAjd_scripts%E7%9B%AE%E5%BD%95%E5%8D%B3%E5%8F%AF)的使用方式
|
|
||||||
> 发现有人好像希望不同账户任务并发执行,不想一个账户执行完了才能再执行另一个,这里写一个`docker办法一`的基础上实现方式,其实就是不同账户创建不同的容器,他们互不干扰单独定时执行自己的任务。
|
|
||||||
配置使用起来还是比较简单的,具体往下看
|
|
||||||
### 文件夹目录参考
|
|
||||||

|
|
||||||
### 具体使用说明直接在图片标注了,文件参考[图片下方](https://github.com/LXK9301/jd_scripts/new/master/docker#docker-composeyml%E6%96%87%E4%BB%B6%E5%8F%82%E8%80%83),配置完成后的[执行命令]()
|
|
||||||

|
|
||||||
#### `docker-compose.yml`文件参考
|
|
||||||
```yaml
|
|
||||||
version: "3"
|
|
||||||
services:
|
|
||||||
jd_scripts1: #默认
|
|
||||||
image: lxk0301/jd_scripts
|
|
||||||
# 配置服务器资源约束。此例子中服务被限制为使用内存不超过200M以及cpu不超过 0.2(单核的20%)
|
|
||||||
# 经过实际测试,建议不低于200M
|
|
||||||
# deploy:
|
|
||||||
# resources:
|
|
||||||
# limits:
|
|
||||||
# cpus: '0.2'
|
|
||||||
# memory: 200M
|
|
||||||
restart: always
|
|
||||||
container_name: jd_scripts1
|
|
||||||
tty: true
|
|
||||||
volumes:
|
|
||||||
- ./logs1:/scripts/logs
|
|
||||||
environment:
|
|
||||||
- JD_COOKIE=pt_key=AAJfjaNrADAS8ygfgIsOxxxxxxxKpfDaZ2pSBOYTxtPqLK8U1Q;pt_pin=lxxxxxx5;
|
|
||||||
- TG_BOT_TOKEN=130xxxx280:AAExxxxxxWP10zNf91WQ
|
|
||||||
- TG_USER_ID=12xxxx206
|
|
||||||
# 互助助码等参数可自行增加,如下。
|
|
||||||
# 京东种豆得豆
|
|
||||||
# - PLANT_BEAN_SHARECODES=
|
|
||||||
|
|
||||||
jd_scripts2: #默认
|
|
||||||
image: lxk0301/jd_scripts
|
|
||||||
restart: always
|
|
||||||
container_name: jd_scripts2
|
|
||||||
tty: true
|
|
||||||
volumes:
|
|
||||||
- ./logs2:/scripts/logs
|
|
||||||
environment:
|
|
||||||
- JD_COOKIE=pt_key=AAJfjaNrADAS8ygfgIsOxxxxxxxKpfDaZ2pSBOYTxtPqLK8U1Q;pt_pin=lxxxxxx5;
|
|
||||||
- TG_BOT_TOKEN=130xxxx280:AAExxxxxxWP10zNf91WQ
|
|
||||||
- TG_USER_ID=12xxxx206
|
|
||||||
jd_scripts4: #自定义追加默认之后
|
|
||||||
image: lxk0301/jd_scripts
|
|
||||||
restart: always
|
|
||||||
container_name: jd_scripts4
|
|
||||||
tty: true
|
|
||||||
volumes:
|
|
||||||
- ./logs4:/scripts/logs
|
|
||||||
- ./my_crontab_list4.sh:/scripts/docker/my_crontab_list.sh
|
|
||||||
environment:
|
|
||||||
- JD_COOKIE=pt_key=AAJfjaNrADAS8ygfgIsOxxxxxxxKpfDaZ2pSBOYTxtPqLK8U1Q;pt_pin=lxxxxxx5;
|
|
||||||
- TG_BOT_TOKEN=130xxxx280:AAExxxxxxWP10zNf91WQ
|
|
||||||
- TG_USER_ID=12xxxx206
|
|
||||||
- CUSTOM_LIST_FILE=my_crontab_list.sh
|
|
||||||
jd_scripts5: #自定义覆盖默认
|
|
||||||
image: lxk0301/jd_scripts
|
|
||||||
restart: always
|
|
||||||
container_name: jd_scripts5
|
|
||||||
tty: true
|
|
||||||
volumes:
|
|
||||||
- ./logs5:/scripts/logs
|
|
||||||
- ./my_crontab_list5.sh:/scripts/docker/my_crontab_list.sh
|
|
||||||
environment:
|
|
||||||
- JD_COOKIE=pt_key=AAJfjaNrADAS8ygfgIsOxxxxxxxKpfDaZ2pSBOYTxtPqLK8U1Q;pt_pin=lxxxxxx5;
|
|
||||||
- TG_BOT_TOKEN=130xxxx280:AAExxxxxxWP10zNf91WQ
|
|
||||||
- TG_USER_ID=12xxxx206
|
|
||||||
- CUSTOM_LIST_FILE=my_crontab_list.sh
|
|
||||||
- CUSTOM_LIST_MERGE_TYPE=overwrite
|
|
||||||
|
|
||||||
```
|
|
||||||
#### 目录文件配置好之后在 `jd_scripts_multi`目录执行
|
|
||||||
`docker-compose up -d` 启动;
|
|
||||||
`docker-compose logs` 打印日志;
|
|
||||||
`docker-compose pull` 更新镜像;
|
|
||||||
`docker-compose stop` 停止容器;
|
|
||||||
`docker-compose restart` 重启容器;
|
|
||||||
`docker-compose down` 停止并删除容器;
|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
@ -1,65 +0,0 @@
|
|||||||
{
|
|
||||||
"cap_add" : [],
|
|
||||||
"cap_drop" : [],
|
|
||||||
"cmd" : "",
|
|
||||||
"cpu_priority" : 50,
|
|
||||||
"devices" : null,
|
|
||||||
"enable_publish_all_ports" : false,
|
|
||||||
"enable_restart_policy" : true,
|
|
||||||
"enabled" : true,
|
|
||||||
"env_variables" : [
|
|
||||||
{
|
|
||||||
"key" : "PATH",
|
|
||||||
"value" : "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key" : "CDN_JD_DAILYBONUS",
|
|
||||||
"value" : "true"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key" : "JD_COOKIE",
|
|
||||||
"value" : "pt_key=xxx;pt_pin=xxx;"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key" : "PUSH_KEY",
|
|
||||||
"value" : ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key" : "CUSTOM_LIST_FILE",
|
|
||||||
"value" : "my_crontab_list.sh"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"exporting" : false,
|
|
||||||
"id" : "3a2f6f27c23f93bc104585c22569c760cc9ce82df09cdb41d53b491fe1d0341c",
|
|
||||||
"image" : "lxk0301/jd_scripts",
|
|
||||||
"is_ddsm" : false,
|
|
||||||
"is_package" : false,
|
|
||||||
"links" : [],
|
|
||||||
"memory_limit" : 0,
|
|
||||||
"name" : "jd_scripts",
|
|
||||||
"network" : [
|
|
||||||
{
|
|
||||||
"driver" : "bridge",
|
|
||||||
"name" : "bridge"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"network_mode" : "default",
|
|
||||||
"port_bindings" : [],
|
|
||||||
"privileged" : false,
|
|
||||||
"shortcut" : {
|
|
||||||
"enable_shortcut" : false
|
|
||||||
},
|
|
||||||
"use_host_network" : false,
|
|
||||||
"volume_bindings" : [
|
|
||||||
{
|
|
||||||
"host_volume_file" : "/docker/jd_scripts/my_crontab_list.sh",
|
|
||||||
"mount_point" : "/scripts/docker/my_crontab_list.sh",
|
|
||||||
"type" : "rw"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"host_volume_file" : "/docker/jd_scripts/logs",
|
|
||||||
"mount_point" : "/scripts/logs",
|
|
||||||
"type" : "rw"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,69 +0,0 @@
|
|||||||
{
|
|
||||||
"cap_add" : [],
|
|
||||||
"cap_drop" : [],
|
|
||||||
"cmd" : "",
|
|
||||||
"cpu_priority" : 50,
|
|
||||||
"devices" : null,
|
|
||||||
"enable_publish_all_ports" : false,
|
|
||||||
"enable_restart_policy" : true,
|
|
||||||
"enabled" : true,
|
|
||||||
"env_variables" : [
|
|
||||||
{
|
|
||||||
"key" : "PATH",
|
|
||||||
"value" : "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key" : "CDN_JD_DAILYBONUS",
|
|
||||||
"value" : "true"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key" : "JD_COOKIE",
|
|
||||||
"value" : "pt_key=xxx;pt_pin=xxx;"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key" : "PUSH_KEY",
|
|
||||||
"value" : ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key" : "CUSTOM_LIST_FILE",
|
|
||||||
"value" : "my_crontab_list.sh"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key" : "CUSTOM_LIST_MERGE_TYPE",
|
|
||||||
"value" : "overwrite"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"exporting" : false,
|
|
||||||
"id" : "3a2f6f27c23f93bc104585c22569c760cc9ce82df09cdb41d53b491fe1d0341c",
|
|
||||||
"image" : "lxk0301/jd_scripts",
|
|
||||||
"is_ddsm" : false,
|
|
||||||
"is_package" : false,
|
|
||||||
"links" : [],
|
|
||||||
"memory_limit" : 0,
|
|
||||||
"name" : "jd_scripts",
|
|
||||||
"network" : [
|
|
||||||
{
|
|
||||||
"driver" : "bridge",
|
|
||||||
"name" : "bridge"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"network_mode" : "default",
|
|
||||||
"port_bindings" : [],
|
|
||||||
"privileged" : false,
|
|
||||||
"shortcut" : {
|
|
||||||
"enable_shortcut" : false
|
|
||||||
},
|
|
||||||
"use_host_network" : false,
|
|
||||||
"volume_bindings" : [
|
|
||||||
{
|
|
||||||
"host_volume_file" : "/docker/jd_scripts/my_crontab_list.sh",
|
|
||||||
"mount_point" : "/scripts/docker/my_crontab_list.sh",
|
|
||||||
"type" : "rw"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"host_volume_file" : "/docker/jd_scripts/logs",
|
|
||||||
"mount_point" : "/scripts/logs",
|
|
||||||
"type" : "rw"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,83 +0,0 @@
|
|||||||
{
|
|
||||||
"cap_add" : null,
|
|
||||||
"cap_drop" : null,
|
|
||||||
"cmd" : "",
|
|
||||||
"cpu_priority" : 0,
|
|
||||||
"devices" : null,
|
|
||||||
"enable_publish_all_ports" : false,
|
|
||||||
"enable_restart_policy" : true,
|
|
||||||
"enabled" : false,
|
|
||||||
"env_variables" : [
|
|
||||||
{
|
|
||||||
"key" : "PATH",
|
|
||||||
"value" : "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key" : "CDN_JD_DAILYBONUS",
|
|
||||||
"value" : "true"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key" : "JD_COOKIE",
|
|
||||||
"value" : "pt_key=AAJfjaNrADASxxxxxxxKpfDaZ2pSBOYTxtPqLK8U1Q;pt_pin=lxxxxx5;"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key" : "TG_BOT_TOKEN",
|
|
||||||
"value" : "13xxxxxx80:AAEkNxxxxxxzNf91WQ"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key" : "TG_USER_ID",
|
|
||||||
"value" : "12xxxx206"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key" : "PLANT_BEAN_SHARECODES",
|
|
||||||
"value" : ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key" : "FRUITSHARECODES",
|
|
||||||
"value" : ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key" : "PETSHARECODES",
|
|
||||||
"value" : ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key" : "SUPERMARKET_SHARECODES",
|
|
||||||
"value" : ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key" : "CRONTAB_LIST_FILE",
|
|
||||||
"value" : "crontab_list.sh"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"exporting" : false,
|
|
||||||
"id" : "18af38bc0ac37a40e4b9608a86fef56c464577cc160bbdddec90155284fcf4e5",
|
|
||||||
"image" : "lxk0301/jd_scripts",
|
|
||||||
"is_ddsm" : false,
|
|
||||||
"is_package" : false,
|
|
||||||
"links" : [],
|
|
||||||
"memory_limit" : 0,
|
|
||||||
"name" : "jd_scripts",
|
|
||||||
"network" : [
|
|
||||||
{
|
|
||||||
"driver" : "bridge",
|
|
||||||
"name" : "bridge"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"network_mode" : "default",
|
|
||||||
"port_bindings" : [],
|
|
||||||
"privileged" : false,
|
|
||||||
"shortcut" : {
|
|
||||||
"enable_shortcut" : false,
|
|
||||||
"enable_status_page" : false,
|
|
||||||
"enable_web_page" : false,
|
|
||||||
"web_page_url" : ""
|
|
||||||
},
|
|
||||||
"use_host_network" : false,
|
|
||||||
"volume_bindings" : [
|
|
||||||
{
|
|
||||||
"host_volume_file" : "/docker/jd_scripts/logs",
|
|
||||||
"mount_point" : "/scripts/logs",
|
|
||||||
"type" : "rw"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,62 +0,0 @@
|
|||||||
version: "3"
|
|
||||||
services:
|
|
||||||
jd_scripts1: #默认
|
|
||||||
image: lxk0301/jd_scripts
|
|
||||||
# 配置服务器资源约束。此例子中服务被限制为使用内存不超过200M以及cpu不超过 0.2(单核的20%)
|
|
||||||
# 经过实际测试,建议不低于200M
|
|
||||||
# deploy:
|
|
||||||
# resources:
|
|
||||||
# limits:
|
|
||||||
# cpus: '0.2'
|
|
||||||
# memory: 200M
|
|
||||||
restart: always
|
|
||||||
container_name: jd_scripts1
|
|
||||||
tty: true
|
|
||||||
volumes:
|
|
||||||
- ./logs1:/scripts/logs
|
|
||||||
environment:
|
|
||||||
- JD_COOKIE=pt_key=AAJfjaNrADAS8ygfgIsOxxxxxxxKpfDaZ2pSBOYTxtPqLK8U1Q;pt_pin=lxxxxxx5;
|
|
||||||
- TG_BOT_TOKEN=130xxxx280:AAExxxxxxWP10zNf91WQ
|
|
||||||
- TG_USER_ID=12xxxx206
|
|
||||||
# 互助助码等参数可自行增加,如下。
|
|
||||||
# 京东种豆得豆
|
|
||||||
# - PLANT_BEAN_SHARECODES=
|
|
||||||
|
|
||||||
jd_scripts2: #默认
|
|
||||||
image: lxk0301/jd_scripts
|
|
||||||
restart: always
|
|
||||||
container_name: jd_scripts2
|
|
||||||
tty: true
|
|
||||||
volumes:
|
|
||||||
- ./logs2:/scripts/logs
|
|
||||||
environment:
|
|
||||||
- JD_COOKIE=pt_key=AAJfjaNrADAS8ygfgIsOxxxxxxxKpfDaZ2pSBOYTxtPqLK8U1Q;pt_pin=lxxxxxx5;
|
|
||||||
- TG_BOT_TOKEN=130xxxx280:AAExxxxxxWP10zNf91WQ
|
|
||||||
- TG_USER_ID=12xxxx206
|
|
||||||
jd_scripts4: #自定义追加默认之后
|
|
||||||
image: lxk0301/jd_scripts
|
|
||||||
restart: always
|
|
||||||
container_name: jd_scripts4
|
|
||||||
tty: true
|
|
||||||
volumes:
|
|
||||||
- ./logs4:/scripts/logs
|
|
||||||
- ./my_crontab_list4.sh:/scripts/docker/my_crontab_list.sh
|
|
||||||
environment:
|
|
||||||
- JD_COOKIE=pt_key=AAJfjaNrADAS8ygfgIsOxxxxxxxKpfDaZ2pSBOYTxtPqLK8U1Q;pt_pin=lxxxxxx5;
|
|
||||||
- TG_BOT_TOKEN=130xxxx280:AAExxxxxxWP10zNf91WQ
|
|
||||||
- TG_USER_ID=12xxxx206
|
|
||||||
- CUSTOM_LIST_FILE=my_crontab_list.sh
|
|
||||||
jd_scripts5: #自定义覆盖默认
|
|
||||||
image: lxk0301/jd_scripts
|
|
||||||
restart: always
|
|
||||||
container_name: jd_scripts5
|
|
||||||
tty: true
|
|
||||||
volumes:
|
|
||||||
- ./logs5:/scripts/logs
|
|
||||||
- ./my_crontab_list5.sh:/scripts/docker/my_crontab_list.sh
|
|
||||||
environment:
|
|
||||||
- JD_COOKIE=pt_key=AAJfjaNrADAS8ygfgIsOxxxxxxxKpfDaZ2pSBOYTxtPqLK8U1Q;pt_pin=lxxxxxx5;
|
|
||||||
- TG_BOT_TOKEN=130xxxx280:AAExxxxxxWP10zNf91WQ
|
|
||||||
- TG_USER_ID=12xxxx206
|
|
||||||
- CUSTOM_LIST_FILE=my_crontab_list.sh
|
|
||||||
- CUSTOM_LIST_MERGE_TYPE=overwrite
|
|
||||||
@ -1,20 +0,0 @@
|
|||||||
const notify = require('../sendNotify');
|
|
||||||
const fs = require('fs');
|
|
||||||
const notifyPath = '/scripts/logs/notify.txt';
|
|
||||||
async function image_update_notify() {
|
|
||||||
if (fs.existsSync(notifyPath)) {
|
|
||||||
const content = await fs.readFileSync(`${notifyPath}`, 'utf8');//读取notify.txt内容
|
|
||||||
if (process.env.NOTIFY_CONTENT && !content.includes(process.env.NOTIFY_CONTENT)) {
|
|
||||||
await notify.sendNotify("⚠️Docker镜像版本更新通知⚠️", process.env.NOTIFY_CONTENT);
|
|
||||||
await fs.writeFileSync(`${notifyPath}`, process.env.NOTIFY_CONTENT);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (process.env.NOTIFY_CONTENT) {
|
|
||||||
notify.sendNotify("⚠️Docker镜像版本更新通知⚠️", process.env.NOTIFY_CONTENT)
|
|
||||||
await fs.writeFileSync(`${notifyPath}`, process.env.NOTIFY_CONTENT);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
!(async() => {
|
|
||||||
await image_update_notify();
|
|
||||||
})().catch((e) => console.log(e))
|
|
||||||
@ -1,27 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
if [[ -f /usr/bin/jd_bot && -z "$DISABLE_SPNODE" ]]; then
|
|
||||||
CMD="spnode"
|
|
||||||
else
|
|
||||||
CMD="node"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "处理jd_crazy_joy_coin任务。。。"
|
|
||||||
if [ ! $CRZAY_JOY_COIN_ENABLE ]; then
|
|
||||||
echo "默认启用jd_crazy_joy_coin杀掉jd_crazy_joy_coin任务,并重启"
|
|
||||||
eval $(ps -ef | grep "jd_crazy_joy_coin" | grep -v "grep" | awk '{print "kill "$1}')
|
|
||||||
echo '' >/scripts/logs/jd_crazy_joy_coin.log
|
|
||||||
$CMD /scripts/jd_crazy_joy_coin.js | ts >>/scripts/logs/jd_crazy_joy_coin.log 2>&1 &
|
|
||||||
echo "默认jd_crazy_joy_coin重启完成"
|
|
||||||
else
|
|
||||||
if [ $CRZAY_JOY_COIN_ENABLE = "Y" ]; then
|
|
||||||
echo "配置启用jd_crazy_joy_coin,杀掉jd_crazy_joy_coin任务,并重启"
|
|
||||||
eval $(ps -ef | grep "jd_crazy_joy_coin" | grep -v "grep" | awk '{print "kill "$1}')
|
|
||||||
echo '' >/scripts/logs/jd_crazy_joy_coin.log
|
|
||||||
$CMD /scripts/jd_crazy_joy_coin.js | ts >>/scripts/logs/jd_crazy_joy_coin.log 2>&1 &
|
|
||||||
echo "配置jd_crazy_joy_coin重启完成"
|
|
||||||
else
|
|
||||||
eval $(ps -ef | grep "jd_crazy_joy_coin" | grep -v "grep" | awk '{print "kill "$1}')
|
|
||||||
echo "已配置不启用jd_crazy_joy_coin任务,仅杀掉"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
34
encrypted/jd_jxlhb.js
Normal file
34
encrypted/jd_jxlhb.js
Normal file
File diff suppressed because one or more lines are too long
341
function/TS_USER_AGENTS.ts
Normal file
341
function/TS_USER_AGENTS.ts
Normal file
@ -0,0 +1,341 @@
|
|||||||
|
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
Normal file
1
function/cache/index.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@ -37,20 +37,12 @@ class env {
|
|||||||
console.log(`🔔${this.name}, 结束!\n`)
|
console.log(`🔔${this.name}, 结束!\n`)
|
||||||
}
|
}
|
||||||
notify(array) {
|
notify(array) {
|
||||||
let text = [];
|
let text = '';
|
||||||
let type = 0
|
|
||||||
for (let i of array) {
|
for (let i of array) {
|
||||||
text.push(`${i.user} -- ${i.msg}`)
|
text += `${i.user} -- ${i.msg}\n`
|
||||||
type = i.type
|
|
||||||
}
|
}
|
||||||
console.log(`\n=============================开始发送提醒消息=============================`)
|
console.log(`\n=============================开始发送提醒消息=============================`)
|
||||||
if (type == 1) {
|
notify.sendNotify(this.name + "消息提醒", text)
|
||||||
for (let i of text) {
|
|
||||||
notify.sendNotify(this.name + "消息提醒", i)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
notify.sendNotify(this.name + "消息提醒", text.join('\n'))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
wait(t) {
|
wait(t) {
|
||||||
return new Promise(e => setTimeout(e, t))
|
return new Promise(e => setTimeout(e, t))
|
||||||
@ -131,20 +123,18 @@ class env {
|
|||||||
loads(str) {
|
loads(str) {
|
||||||
return JSON.parse(str)
|
return JSON.parse(str)
|
||||||
}
|
}
|
||||||
notice(msg, type = 0) {
|
notice(msg) {
|
||||||
this.message.push({
|
this.message.push({
|
||||||
'index': this.index,
|
'index': this.index,
|
||||||
'user': this.user,
|
'user': this.user,
|
||||||
'msg': msg,
|
'msg': msg
|
||||||
type
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
notices(msg, user, type = 0) {
|
notices(msg, user, index = '') {
|
||||||
this.message.push({
|
this.message.push({
|
||||||
'user': user,
|
'user': user,
|
||||||
'msg': msg,
|
'msg': msg,
|
||||||
// 'index': index,
|
'index': index
|
||||||
type
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
urlparse(url) {
|
urlparse(url) {
|
||||||
|
|||||||
@ -8,9 +8,6 @@ function mainEval($) {
|
|||||||
}
|
}
|
||||||
$.sleep=cookies['all'].length * 500
|
$.sleep=cookies['all'].length * 500
|
||||||
taskCookie=cookies['all']
|
taskCookie=cookies['all']
|
||||||
if($.config[\`\${$.runfile}_limit\`]){
|
|
||||||
taskCookie = cookies['all'].slice(0,parseInt($.config[\`\${$.runfile}_limit\`]))
|
|
||||||
}
|
|
||||||
jxAlgo = new common.jxAlgo();
|
jxAlgo = new common.jxAlgo();
|
||||||
if ($.readme) {
|
if ($.readme) {
|
||||||
console.log(\`使用说明:\\n\${$.readme}\\n以上内容仅供参考,有需求自行添加\\n\`,)
|
console.log(\`使用说明:\\n\${$.readme}\\n以上内容仅供参考,有需求自行添加\\n\`,)
|
||||||
|
|||||||
341
function/getToken.js
Normal file
341
function/getToken.js
Normal file
File diff suppressed because one or more lines are too long
72
function/h5st.ts
Normal file
72
function/h5st.ts
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
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,6 +1,35 @@
|
|||||||
// 本地测试在这边填写cookie
|
/*
|
||||||
let cookie = [
|
此文件为Node.js专用。其他用户请忽略
|
||||||
];
|
*/
|
||||||
module.exports = {
|
//此处填写京东账号cookie。
|
||||||
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')
|
||||||
9
function/jinli_log.ts
Normal file
9
function/jinli_log.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
let logs = [
|
||||||
|
'"random":"34038984","log":"1649609592095~18RCD4zkS04d41d8cd98f00b204e9800998ecf8427e~1,1~E97F477EB64B001195F05A4D48067CD6C272595D~0doi8po~C~TRpGXBAPbWUeE0ZbWxoIam8ZFF9AXxAPBxQQQkEXDBoDBwYMAw8KBgcAAw4KAgEMABoeE0VQUhoIE0ZBQkxGV0dTFBQQRldUFAIQRVRBV01TRFMXGhpCVVwXDGMGHQIZBhQBHQAZB2UeE1hfFAIDHRBWRRoIEwVQUFpQAFABAAgEVAZTD1sGBwABUw9RCQMHDw1WCQAFFBQQX0IXDBp+WFxAThhKCQRqAAwQHRBBFAIQAAQBDw4CCAcMBAgLBBAZFFJZEwgXVxoeE1RFVBoIExAZFFZEEwgXcVddVl5QFnFcUhwXGhpcUEQXDBoLAwsGBRoeE0FWRBoIagQDARQBBgdoGhpAXhAPbRpTEx4XVxoeE1MXGhpTEx4XVxoeE1MXGhpTE28ZFFFdUBAPFF5UV1RTUExGEx4XV1IQCxBAFBQQUlsXDBpFAhwHGAwQHRBWUGdEEwgXBggQHRBXUhoIE0BUWFxdXA8GAggBCQsNAhoeE19fFAJpAR4FGghvHRBXWldVEwgXVxoeE19GURoIE1MXSw==~04y5u3i"',
|
||||||
|
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
|
export {
|
||||||
|
logs
|
||||||
|
}
|
||||||
1
function/krgetToken.js
Normal file
1
function/krgetToken.js
Normal file
File diff suppressed because one or more lines are too long
1004
function/magic.js
Normal file
1004
function/magic.js
Normal file
File diff suppressed because it is too large
Load Diff
1
function/mfdps.js
Normal file
1
function/mfdps.js
Normal file
File diff suppressed because one or more lines are too long
204
function/ql.js
Normal file
204
function/ql.js
Normal file
@ -0,0 +1,204 @@
|
|||||||
|
'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;
|
||||||
|
};
|
||||||
@ -7,7 +7,7 @@
|
|||||||
* @param text 通知头
|
* @param text 通知头
|
||||||
* @param desp 通知体
|
* @param desp 通知体
|
||||||
* @param params 某些推送通知方式点击弹窗可跳转, 例:{ url: 'https://abc.com' }
|
* @param params 某些推送通知方式点击弹窗可跳转, 例:{ url: 'https://abc.com' }
|
||||||
* @param author 作者仓库等信息 例:`本通知 By:https://github.com/whyour/qinglong`
|
* @param author 作者仓库等信息 例:`Faker提示:如有疑问,请进群https://t.me/Soucetalk`
|
||||||
*/
|
*/
|
||||||
//详细说明参考 https://github.com/ccwav/QLScript2.
|
//详细说明参考 https://github.com/ccwav/QLScript2.
|
||||||
const querystring = require('querystring');
|
const querystring = require('querystring');
|
||||||
@ -117,7 +117,7 @@ let GOTIFY_PRIORITY = 0;
|
|||||||
* @param text 通知头
|
* @param text 通知头
|
||||||
* @param desp 通知体
|
* @param desp 通知体
|
||||||
* @param params 某些推送通知方式点击弹窗可跳转, 例:{ url: 'https://abc.com' }
|
* @param params 某些推送通知方式点击弹窗可跳转, 例:{ url: 'https://abc.com' }
|
||||||
* @param author 作者仓库等信息 例:`本通知 By:https://github.com/whyour/qinglong`
|
* @param author 作者仓库等信息 例:`Faker提示:如有疑问,请进群https://t.me/Soucetalk`
|
||||||
* @returns {Promise<unknown>}
|
* @returns {Promise<unknown>}
|
||||||
*/
|
*/
|
||||||
let PushErrorTime = 0;
|
let PushErrorTime = 0;
|
||||||
|
|||||||
2085
function/sign_graphics_validate.js
Normal file
2085
function/sign_graphics_validate.js
Normal file
File diff suppressed because it is too large
Load Diff
5130
function/signdps.js
Normal file
5130
function/signdps.js
Normal file
File diff suppressed because one or more lines are too long
256
gua_MMdou.js
Normal file
256
gua_MMdou.js
Normal file
File diff suppressed because one or more lines are too long
1320
gua_wealth_island.js
1320
gua_wealth_island.js
File diff suppressed because one or more lines are too long
508
h5sts.js
Normal file
508
h5sts.js
Normal file
@ -0,0 +1,508 @@
|
|||||||
|
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};
|
||||||
|
|
||||||
|
|
||||||
40
index.js
40
index.js
@ -1,40 +0,0 @@
|
|||||||
//'use strict';
|
|
||||||
exports.main_handler = async (event, context, callback) => {
|
|
||||||
try {
|
|
||||||
const { TENCENTSCF_SOURCE_TYPE, TENCENTSCF_SOURCE_URL } = process.env
|
|
||||||
//如果想在一个定时触发器里面执行多个js文件需要在定时触发器的【附加信息】里面填写对应的名称,用 & 链接
|
|
||||||
//例如我想一个定时触发器里执行jd_speed.js和jd_bean_change.js,在定时触发器的【附加信息】里面就填写 jd_speed&jd_bean_change
|
|
||||||
for (const v of event["Message"].split("&")) {
|
|
||||||
console.log(v);
|
|
||||||
var request = require('request');
|
|
||||||
switch (TENCENTSCF_SOURCE_TYPE) {
|
|
||||||
case 'local':
|
|
||||||
//1.执行自己上传的js文件
|
|
||||||
delete require.cache[require.resolve('./'+v+'.js')];
|
|
||||||
require('./'+v+'.js')
|
|
||||||
break;
|
|
||||||
case 'git':
|
|
||||||
//2.执行github远端的js文件(因github的raw类型的文件被墙,此方法云函数不推荐)
|
|
||||||
request(`https://raw.githubusercontent.com/xxx/jd_scripts/master/${v}.js`, function (error, response, body) {
|
|
||||||
eval(response.body)
|
|
||||||
})
|
|
||||||
break;
|
|
||||||
case 'custom':
|
|
||||||
//3.执行自定义远端js文件网址
|
|
||||||
if (!TENCENTSCF_SOURCE_URL) return console.log('自定义模式需要设置TENCENTSCF_SOURCE_URL变量')
|
|
||||||
request(`${TENCENTSCF_SOURCE_URL}${v}.js`, function (error, response, body) {
|
|
||||||
eval(response.body)
|
|
||||||
})
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
//4.执行国内gitee远端的js文件(如果部署在国内节点,选择1或3。默认使用gitee的方式)
|
|
||||||
request(`${v}.js`, function (error, response, body) {
|
|
||||||
eval(response.body)
|
|
||||||
})
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
console.error(e)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -45,7 +45,7 @@ function SetShareCodesEnv(nameConfig = "", envName = "") {
|
|||||||
let rawCodeConfig = {}
|
let rawCodeConfig = {}
|
||||||
|
|
||||||
// 读取互助码
|
// 读取互助码
|
||||||
shareCodeLogPath = `${process.env.QL_DIR}/log/.ShareCode/${nameConfig}.log`
|
let shareCodeLogPath = `${process.env.QL_DIR}/log/.ShareCode/${nameConfig}.log`
|
||||||
let fs = require('fs')
|
let fs = require('fs')
|
||||||
if (fs.existsSync(shareCodeLogPath)) {
|
if (fs.existsSync(shareCodeLogPath)) {
|
||||||
// 因为faker2目前没有自带ini,改用已有的dotenv来解析
|
// 因为faker2目前没有自带ini,改用已有的dotenv来解析
|
||||||
@ -59,7 +59,7 @@ function SetShareCodesEnv(nameConfig = "", envName = "") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 解析每个用户的互助码
|
// 解析每个用户的互助码
|
||||||
codes = {}
|
let codes = {}
|
||||||
Object.keys(rawCodeConfig).forEach(function (key) {
|
Object.keys(rawCodeConfig).forEach(function (key) {
|
||||||
if (key.startsWith(`My${nameConfig}`)) {
|
if (key.startsWith(`My${nameConfig}`)) {
|
||||||
codes[key] = rawCodeConfig[key]
|
codes[key] = rawCodeConfig[key]
|
||||||
@ -97,5 +97,5 @@ let envName = process.env.ShareCodeEnvName
|
|||||||
if (nameConfig && envName) {
|
if (nameConfig && envName) {
|
||||||
SetShareCodesEnv(nameConfig, envName)
|
SetShareCodesEnv(nameConfig, envName)
|
||||||
} else {
|
} else {
|
||||||
console.debug(`OKYYDS 友情提示:您的脚本正常运行中`)
|
console.debug(`faker 友情提示:您的脚本正常运行中`)
|
||||||
}
|
}
|
||||||
48
jdCookie.py
Normal file
48
jdCookie.py
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
#!/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"))
|
||||||
@ -7,8 +7,8 @@
|
|||||||
// 同一个京东账号的好友互助码用@符号隔开,不同京东账号之间用&符号或者换行隔开,下面给一个示例
|
// 同一个京东账号的好友互助码用@符号隔开,不同京东账号之间用&符号或者换行隔开,下面给一个示例
|
||||||
// 如: 京东账号1的shareCode1@京东账号1的shareCode2&京东账号2的shareCode1@京东账号2的shareCode2
|
// 如: 京东账号1的shareCode1@京东账号1的shareCode2&京东账号2的shareCode1@京东账号2的shareCode2
|
||||||
let FruitShareCodes = [
|
let FruitShareCodes = [
|
||||||
'',//账号一的好友shareCode,不同好友中间用@符号隔开
|
'0a74407df5df4fa99672a037eec61f7e@dbb21614667246fabcfd9685b6f448f3@6fbd26cc27ac44d6a7fed34092453f77@61ff5c624949454aa88561f2cd721bf6@56db8e7bc5874668ba7d5195230d067a',//账号一的好友shareCode,不同好友中间用@符号隔开
|
||||||
'',//账号二的好友shareCode,不同好友中间用@符号隔开
|
'6fbd26cc27ac44d6a7fed34092453f77@61ff5c624949454aa88561f2cd721bf6@9c52670d52ad4e1a812f894563c746ea@8175509d82504e96828afc8b1bbb9cb3',//账号二的好友shareCode,不同好友中间用@符号隔开
|
||||||
]
|
]
|
||||||
|
|
||||||
// 从日志获取互助码
|
// 从日志获取互助码
|
||||||
|
|||||||
4019
jdMsLogs.js
Normal file
4019
jdMsLogs.js
Normal file
File diff suppressed because it is too large
Load Diff
550
jd_CkSeq.js
Normal file
550
jd_CkSeq.js
Normal file
@ -0,0 +1,550 @@
|
|||||||
|
/*
|
||||||
|
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)
|
||||||
|
}
|
||||||
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
cron "14 0,9 * * *" jd_CheckCK.js, tag:京东多合一签到脚本修改版
|
14 0,9 * * * jd_CheckCK.js, tag:京东多合一签到脚本修改版
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*************************
|
/*************************
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,72 +0,0 @@
|
|||||||
let common = require("./function/common");
|
|
||||||
let $ = new common.env('京喜工厂助力');
|
|
||||||
let min = 3,
|
|
||||||
help = $.config[$.filename(__filename)] || Math.min(min, $.config.JdMain) || min;
|
|
||||||
$.setOptions({
|
|
||||||
headers: {
|
|
||||||
'content-type': 'application/json',
|
|
||||||
'user-agent': 'jdpingou;iPhone;4.8.2;13.7;a3b4e844090b28d5c38e7529af8115172079be4d;network/wifi;model/iPhone8,1;appBuild/100546;ADID/00000000-0000-0000-0000-000000000000;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/0;hasOCPay/0;supportBestPay/0;session/374;pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148',
|
|
||||||
'referer': 'https://st.jingxi.com/pingou/dream_factory/divide.html?activeId=laD7IwPwDF1-Te-MvbW9Iw==&_close=1&jxsid=16232028831911667857',
|
|
||||||
}
|
|
||||||
});
|
|
||||||
$.readme = `
|
|
||||||
44 */6 * * * task ${$.runfile}
|
|
||||||
export ${$.runfile}=2 #如需增加被助力账号,在这边修改人数
|
|
||||||
`
|
|
||||||
eval(common.eval.mainEval($));
|
|
||||||
async function prepare() {
|
|
||||||
let deramUrl = 'https://st.jingxi.com/pingou/dream_factory/index.html?ptag=7155.9.46'
|
|
||||||
let html = await $.curl(deramUrl)
|
|
||||||
try {
|
|
||||||
ary = $.matchall(/activeId=([^\&\,]+)","bgImg".+?"start":"([^\"]+)"/g, html)
|
|
||||||
dicts = {}
|
|
||||||
for (let i of ary) {
|
|
||||||
dicts[new Date(i[1]).getTime()] = i[0]
|
|
||||||
}
|
|
||||||
max = Math.max(...Object.keys(dicts).filter(d => parseInt(d) < $.timestamp))
|
|
||||||
$.activeId = dicts[max]
|
|
||||||
} catch (e) {
|
|
||||||
$.activeId = 'yNtpovqFehHByNrt_lmb3g=='
|
|
||||||
}
|
|
||||||
console.log("开团ID:", $.activeId)
|
|
||||||
let url = `https://m.jingxi.com/dreamfactory/tuan/QueryActiveConfig?activeId=${$.activeId}&tuanId=&_time=1623214804148&_stk=_time%2CactiveId%2CtuanId&_ste=1&sceneval=2&g_login_type=1&callback=jsonpCBKA&g_ty=ls`
|
|
||||||
let dec = await jxAlgo.dec(url)
|
|
||||||
for (let j of cookies['help']) {
|
|
||||||
$.setCookie(j);
|
|
||||||
await $.curl(dec.url)
|
|
||||||
try {
|
|
||||||
if ($.source.data.userTuanInfo.tuanId) {
|
|
||||||
$.sharecode.push($.compact($.source.data.userTuanInfo, ['activeId', 'tuanId']))
|
|
||||||
} else {}
|
|
||||||
} catch (e) {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
async function main(id) {
|
|
||||||
common.assert(id.activeId, '没有开团ID')
|
|
||||||
let url = `https://m.jingxi.com/dreamfactory/tuan/JoinTuan?activeId=${id.activeId}&tuanId=${id.tuanId}&_time=1623214617107&_stk=_time%2CactiveId%2CtuanId&_ste=1&sceneval=2&g_login_type=1&g_ty=ls`
|
|
||||||
let dec = await jxAlgo.dec(url)
|
|
||||||
let params = {
|
|
||||||
'url': dec.url,
|
|
||||||
'cookie': id.cookie
|
|
||||||
}
|
|
||||||
await $.curl(params)
|
|
||||||
console.log($.source)
|
|
||||||
}
|
|
||||||
async function extra() {
|
|
||||||
for (let j of cookies['help']) {
|
|
||||||
$.setCookie(j);
|
|
||||||
let url = `https://m.jingxi.com/dreamfactory/tuan/QueryActiveConfig?activeId=${$.activeId}&tuanId=&_time=1623214804148&_stk=_time%2CactiveId%2CtuanId&_ste=1&sceneval=2&g_login_type=1&callback=jsonpCBKA&g_ty=ls`
|
|
||||||
let dec = await jxAlgo.dec(url)
|
|
||||||
await $.curl(dec.url)
|
|
||||||
url = `https://m.jingxi.com/dreamfactory/tuan/Award?activeId=${$.source.data.userTuanInfo.activeId}&tuanId=${$.source.data.userTuanInfo.tuanId}&_time=1623518911051&_stk=_time%2CactiveId%2CtuanId&_ste=1&_=1623518911082&sceneval=2&g_login_type=1&callback=jsonpCBKF&g_ty=ls`
|
|
||||||
dec = await jxAlgo.dec(url)
|
|
||||||
await $.curl(dec.url)
|
|
||||||
console.log($.source)
|
|
||||||
if ($.source.msg != '您还没有成团') {
|
|
||||||
url = `https://m.jingxi.com/dreamfactory/tuan/CreateTuan?activeId=${$.activeId}&isOpenApp=1&_time=1624120758151&_stk=_time%2CactiveId%2CisOpenApp&_ste=1`
|
|
||||||
dec = await jxAlgo.dec(url)
|
|
||||||
await $.curl(dec.url)
|
|
||||||
console.log($.source)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
849
jd_angryKoi.js
849
jd_angryKoi.js
@ -1,849 +0,0 @@
|
|||||||
/*
|
|
||||||
愤怒的锦鲤
|
|
||||||
更新时间:2021-7-11
|
|
||||||
备注:高速并发请求,专治偷助力。在kois环境变量中填入需要助力的pt_pin,有多个请用@符号连接
|
|
||||||
|
|
||||||
风之凌殇 魔改版:
|
|
||||||
2021.11.27 修复不能正常先满足第一个账号的问题,并添加车头和公平模式
|
|
||||||
2021.11.29 增加自动开红包的功能
|
|
||||||
|
|
||||||
改用以下变量
|
|
||||||
#雨露均沾,若配置,则车头外的ck随机顺序,这样可以等概率的随到前面来
|
|
||||||
export KOI_FAIR_MODE="true"
|
|
||||||
## 设置1个车头,如果有更多个车头,就写对应数目。仅当车头互助满,才会尝试后面的。
|
|
||||||
export KOI_CHETOU_NUMBER="1"
|
|
||||||
|
|
||||||
TG学习交流群:https://t.me/cdles
|
|
||||||
5 0 * * * https://raw.githubusercontent.com/cdle/jd_study/main/jd_angryKoi.js
|
|
||||||
*/
|
|
||||||
const $ = new Env("愤怒的锦鲤")
|
|
||||||
const JD_API_HOST = 'https://api.m.jd.com/client.action';
|
|
||||||
const ua = `jdltapp;iPhone;3.1.0;${Math.ceil(Math.random() * 4 + 10)}.${Math.ceil(Math.random() * 4)};${randomString(40)}`
|
|
||||||
let fair_mode = process.env.KOI_FAIR_MODE == "true" ? true : false
|
|
||||||
let chetou_number = process.env.KOI_CHETOU_NUMBER ? Number(process.env.KOI_CHETOU_NUMBER) : 0
|
|
||||||
var kois = process.env.kois ?? ""
|
|
||||||
let cookiesArr = []
|
|
||||||
var tools = []
|
|
||||||
|
|
||||||
let notify, allMessage = '';
|
|
||||||
|
|
||||||
!(async () => {
|
|
||||||
await requireConfig()
|
|
||||||
|
|
||||||
console.log(`当前配置的车头数目:${chetou_number},是否开启公平模式:${fair_mode}`)
|
|
||||||
|
|
||||||
console.log("开始获取用于助力的账号列表")
|
|
||||||
for (let i in cookiesArr) {
|
|
||||||
// 将用于助力的账号加入列表
|
|
||||||
tools.push({id: i, assisted: false, cookie: cookiesArr[i]})
|
|
||||||
}
|
|
||||||
console.log(`用于助力的数目为 ${tools.length}`)
|
|
||||||
allMessage += `用于助力的数目为 ${tools.length}\n`
|
|
||||||
|
|
||||||
console.log(`根据配置,计算互助顺序`)
|
|
||||||
let cookieIndexOrder = []
|
|
||||||
if (fair_mode) {
|
|
||||||
// 若开启了互助模式,则车头固定在前面
|
|
||||||
for (let i = 0; i < chetou_number; i++) {
|
|
||||||
cookieIndexOrder.push(i)
|
|
||||||
}
|
|
||||||
// 后面的随机顺序
|
|
||||||
let otherIndexes = []
|
|
||||||
for (let i = chetou_number; i < cookiesArr.length; i++) {
|
|
||||||
otherIndexes.push(i)
|
|
||||||
}
|
|
||||||
shuffle(otherIndexes)
|
|
||||||
cookieIndexOrder = cookieIndexOrder.concat(otherIndexes)
|
|
||||||
} else {
|
|
||||||
let otherIndexes = []
|
|
||||||
// 未开启公平模式,则按照顺序互助,前面的先互助满
|
|
||||||
for (let idx = 0; idx < cookiesArr.length; idx++) {
|
|
||||||
var cookie = cookiesArr[idx];
|
|
||||||
|
|
||||||
if (kois.indexOf(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) != -1) {
|
|
||||||
otherIndexes.push(idx)
|
|
||||||
} else {
|
|
||||||
cookieIndexOrder.push(idx)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
cookieIndexOrder = otherIndexes.concat(cookieIndexOrder)
|
|
||||||
}
|
|
||||||
console.log(`最终互助顺序如下(优先互助满前面的):\n${cookieIndexOrder}`)
|
|
||||||
allMessage += `本次互助顺序(车头优先,其余等概率随机,每次运行都不一样): ${cookieIndexOrder}\n\n`
|
|
||||||
|
|
||||||
console.log("开始助力")
|
|
||||||
// 最多尝试2*账号数目次,避免无限尝试,保底
|
|
||||||
let remainingTryCount = 2 * cookiesArr.length
|
|
||||||
let helpIndex = 0
|
|
||||||
while (helpIndex < cookiesArr.length && tools.length > 0 && remainingTryCount > 0) {
|
|
||||||
let cookieIndex = cookieIndexOrder[helpIndex]
|
|
||||||
|
|
||||||
try {
|
|
||||||
// 按需获取账号的锦鲤信息
|
|
||||||
let help = await getHelpInfoForCk(cookieIndex, cookiesArr[cookieIndex])
|
|
||||||
if (help) {
|
|
||||||
while (tools.length > 0 && remainingTryCount > 0) {
|
|
||||||
console.info('')
|
|
||||||
|
|
||||||
// 从互助列表末尾取出一个账号,用于尝试助力第一个需要互助的账号
|
|
||||||
let tool = tools.pop()
|
|
||||||
|
|
||||||
// 特殊处理自己的账号
|
|
||||||
if (tool.id == help.id) {
|
|
||||||
tools.unshift(tool)
|
|
||||||
console.log(`跳过自己,不尝试使用本账号自己互助(因为必定失败)`)
|
|
||||||
if (tools.length == 1) {
|
|
||||||
// 用于互助的队列只剩下自己了,说明自己已经尝试完了,可以留着给下一个人(若有)
|
|
||||||
break
|
|
||||||
} else {
|
|
||||||
// 还有其他的互助码,可以继续尝试本账号
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
console.debug(`尝试用 ${tool.id} 账号助力 ${help.id} 账号,用于互助的账号剩余 ${tools.length}`)
|
|
||||||
|
|
||||||
await helpThisUser(help, tool)
|
|
||||||
if (!tool.assisted) {
|
|
||||||
// 如果没有助力成功,则放入互助列表头部
|
|
||||||
tools.unshift(tool)
|
|
||||||
}
|
|
||||||
if (help.assist_full) {
|
|
||||||
console.info(`账号 ${help.id} 助力完成,累计获得 ${help.helpCount} 次互助,将尝试下一个账号`)
|
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
||||||
remainingTryCount -= 1
|
|
||||||
|
|
||||||
// 等待一会,避免频繁请求
|
|
||||||
await $.wait(500)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 获取失败,跳过
|
|
||||||
console.info(`账号 ${cookieIndex} 获取信息失败,具体原因见上一行,将尝试下一个账号`)
|
|
||||||
}
|
|
||||||
|
|
||||||
await appendRewardInfoToNotify(cookieIndex, cookiesArr[cookieIndex])
|
|
||||||
} catch (error) {
|
|
||||||
// 额外捕获异常
|
|
||||||
console.error(`处理当前账号 ${cookieIndex} 时抛异常了,错误为${error},捕获该异常,确保其他账号可以继续执行~`)
|
|
||||||
}
|
|
||||||
|
|
||||||
console.info('\n----------------------------\n')
|
|
||||||
helpIndex++
|
|
||||||
}
|
|
||||||
|
|
||||||
allMessage += "上述就是本次的幸运锦鲤啦~ 自动开红包流程没出错的话,红包应该已经领到了~不过也可以手动前往 京东app/领券/锦鲤红包 去确认~\n"
|
|
||||||
|
|
||||||
allMessage += "(请以今日0点后第一次运行的消息为准。后续运行只是为了保底,避免第一次因各种未知异常而未完成运行)"
|
|
||||||
|
|
||||||
// 发送通知
|
|
||||||
if ($.isNode() && allMessage) {
|
|
||||||
await notify.sendNotify(`${$.name}`, `${allMessage}`)
|
|
||||||
}
|
|
||||||
})().catch((e) => {
|
|
||||||
$.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '')
|
|
||||||
})
|
|
||||||
.finally(() => {
|
|
||||||
$.done();
|
|
||||||
})
|
|
||||||
|
|
||||||
// https://stackoverflow.com/a/2450976
|
|
||||||
function shuffle(array) {
|
|
||||||
let currentIndex = array.length, randomIndex;
|
|
||||||
|
|
||||||
// While there remain elements to shuffle...
|
|
||||||
while (currentIndex != 0) {
|
|
||||||
// Pick a remaining element...
|
|
||||||
randomIndex = Math.floor(Math.random() * currentIndex);
|
|
||||||
currentIndex--;
|
|
||||||
|
|
||||||
// And swap it with the current element.
|
|
||||||
[array[currentIndex], array[randomIndex]] = [
|
|
||||||
array[randomIndex], array[currentIndex]];
|
|
||||||
}
|
|
||||||
|
|
||||||
return array;
|
|
||||||
}
|
|
||||||
|
|
||||||
async function getHelpInfoForCk(cookieIndex, cookie) {
|
|
||||||
console.log(`开始请求第 ${cookieIndex} 个账号的信息`)
|
|
||||||
|
|
||||||
let data;
|
|
||||||
|
|
||||||
// 开启红包
|
|
||||||
data = await with_retry("开启红包活动", async () => {
|
|
||||||
var num = "";
|
|
||||||
for (var g = 0; g < 6; g++) {
|
|
||||||
num += Math.floor(Math.random() * 10);
|
|
||||||
}
|
|
||||||
return await requestApi('h5launch', cookie, {
|
|
||||||
"followShop": 0,
|
|
||||||
"random": num,
|
|
||||||
"log": "42588613~8,~0iuxyee",
|
|
||||||
"sceneid": "JLHBhPageh5"
|
|
||||||
});
|
|
||||||
})
|
|
||||||
|
|
||||||
switch (data?.data?.result?.status) {
|
|
||||||
case 1://火爆
|
|
||||||
console.debug(`h5launch 被风控,变成黑号了, data=${JSON.stringify(data)}`)
|
|
||||||
return;
|
|
||||||
case 2://已经发起过
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
if (data?.data?.result?.redPacketId) {
|
|
||||||
// 加入help队列
|
|
||||||
return {
|
|
||||||
redPacketId: data.data.result.redPacketId,
|
|
||||||
assist_full: false,
|
|
||||||
id: cookieIndex,
|
|
||||||
cookie: cookie,
|
|
||||||
helpCount: 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 已开启活动,尝试查询具体信息
|
|
||||||
data = await with_retry("查询红包信息", async () => {
|
|
||||||
return await requestApi('h5activityIndex', cookie, {
|
|
||||||
"isjdapp": 1
|
|
||||||
});
|
|
||||||
})
|
|
||||||
|
|
||||||
if (data?.data?.result?.redpacketConfigFillRewardInfo) {
|
|
||||||
// 打印今日红包概览
|
|
||||||
let info = data.data.result
|
|
||||||
let headmanNickName = "", packetTotalSum = 0;
|
|
||||||
if (info.redpacketInfo) {
|
|
||||||
headmanNickName = info.redpacketInfo.headmanNickName
|
|
||||||
packetTotalSum = info.redpacketInfo.packetTotalSum
|
|
||||||
}
|
|
||||||
console.info(`【京东账号${cookieIndex + 1}】 ${headmanNickName} 已获取红包 ${packetTotalSum},剩余可拆红包为 ${calcCanTakeRedpacketCount(info)}`)
|
|
||||||
|
|
||||||
for (let packetIdx = 0; packetIdx < info.redpacketConfigFillRewardInfo.length; packetIdx++) {
|
|
||||||
let packetInfo = info.redpacketConfigFillRewardInfo[packetIdx]
|
|
||||||
|
|
||||||
let status = "已获取"
|
|
||||||
if (packetInfo.hasAssistNum < packetInfo.requireAssistNum) {
|
|
||||||
status = "未获取"
|
|
||||||
}
|
|
||||||
|
|
||||||
console.info(`红包 ${packetIdx + 1} 助力 ${packetInfo.hasAssistNum}/${packetInfo.requireAssistNum} ${status} ${packetInfo.packetAmount || "未开启"}/${packetInfo.operationWord}`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (data?.data?.code) {
|
|
||||||
case 20002://已达拆红包数量限制
|
|
||||||
console.debug("已领取今天全部红包,将跳过")
|
|
||||||
break;
|
|
||||||
case 10002://活动正在进行,火爆号
|
|
||||||
console.debug(`h5activityIndex 被风控,变成黑号了, data=${JSON.stringify(data)}`)
|
|
||||||
break;
|
|
||||||
case 20001://红包活动正在进行,可拆
|
|
||||||
// 加入help队列
|
|
||||||
return {
|
|
||||||
redPacketId: data.data.result.redpacketInfo.id,
|
|
||||||
assist_full: false,
|
|
||||||
id: cookieIndex,
|
|
||||||
cookie: cookie,
|
|
||||||
helpCount: 0
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function appendRewardInfoToNotify(cookieIndex, cookie) {
|
|
||||||
let data = await with_retry("查询红包信息", async () => {
|
|
||||||
return await requestApi('h5activityIndex', cookie, {
|
|
||||||
"isjdapp": 1
|
|
||||||
});
|
|
||||||
})
|
|
||||||
|
|
||||||
// 判断是否有红包可以领
|
|
||||||
if (calcCanTakeRedpacketCount(data?.data?.result) > 0) {
|
|
||||||
let info = data.data.result
|
|
||||||
let headmanNickName = "";
|
|
||||||
if (info.redpacketInfo) {
|
|
||||||
headmanNickName = info.redpacketInfo.headmanNickName
|
|
||||||
}
|
|
||||||
|
|
||||||
let canTakeCount = calcCanTakeRedpacketCount(info)
|
|
||||||
console.info(`【京东账号${cookieIndex + 1}】 ${headmanNickName} 剩余可拆红包为 ${canTakeCount} 个,将尝试领取`)
|
|
||||||
for (let packetIdx = 0; packetIdx < canTakeCount; packetIdx++) {
|
|
||||||
console.info(`[${packetIdx + 1}/${canTakeCount}] 尝试领取红包`)
|
|
||||||
await openRedPacket(cookie)
|
|
||||||
|
|
||||||
// 等待一会,避免请求过快
|
|
||||||
await $.wait(1000)
|
|
||||||
}
|
|
||||||
|
|
||||||
console.info(`领取完毕,重新查询最新锦鲤红包信息`)
|
|
||||||
data = await with_retry("查询红包信息", async () => {
|
|
||||||
return await requestApi('h5activityIndex', cookie, {
|
|
||||||
"isjdapp": 1
|
|
||||||
});
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 打印今日红包概览
|
|
||||||
if (data?.data?.result?.redpacketConfigFillRewardInfo) {
|
|
||||||
let info = data.data.result
|
|
||||||
let headmanNickName = "", packetTotalSum = 0;
|
|
||||||
if (info.redpacketInfo) {
|
|
||||||
headmanNickName = info.redpacketInfo.headmanNickName
|
|
||||||
packetTotalSum = info.redpacketInfo.packetTotalSum
|
|
||||||
}
|
|
||||||
allMessage += `【京东账号${cookieIndex + 1}】 ${headmanNickName} 已获取红包 ${packetTotalSum} 元,剩余可拆红包为 ${calcCanTakeRedpacketCount(info)} 个(如开红包流程顺利,这里应该永远是0)\n`
|
|
||||||
|
|
||||||
let totalAssistNum = 0
|
|
||||||
let totalRequireAssistNum = 0
|
|
||||||
for (let packetIdx = 0; packetIdx < info.redpacketConfigFillRewardInfo.length; packetIdx++) {
|
|
||||||
let packetInfo = info.redpacketConfigFillRewardInfo[packetIdx]
|
|
||||||
|
|
||||||
let status = ""
|
|
||||||
if (packetInfo.hasAssistNum < packetInfo.requireAssistNum) {
|
|
||||||
status = "未获取"
|
|
||||||
} else {
|
|
||||||
status = "已获取"
|
|
||||||
}
|
|
||||||
|
|
||||||
totalAssistNum += packetInfo.hasAssistNum
|
|
||||||
totalRequireAssistNum += packetInfo.requireAssistNum
|
|
||||||
allMessage += `红包 ${packetIdx + 1} 助力 ${packetInfo.hasAssistNum}/${packetInfo.requireAssistNum} ${status} ${packetInfo.packetAmount || "未开启"}/${packetInfo.operationWord}\n`
|
|
||||||
}
|
|
||||||
|
|
||||||
allMessage += `总计获得助力 ${totalAssistNum}/${totalRequireAssistNum}\n`
|
|
||||||
|
|
||||||
allMessage += `\n`
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function calcCanTakeRedpacketCount(info) {
|
|
||||||
if (!info?.redpacketConfigFillRewardInfo) {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
let count = 0
|
|
||||||
for (let packetIdx = 0; packetIdx < info.redpacketConfigFillRewardInfo.length; packetIdx++) {
|
|
||||||
let packetInfo = info.redpacketConfigFillRewardInfo[packetIdx]
|
|
||||||
|
|
||||||
if (packetInfo.hasAssistNum >= packetInfo.requireAssistNum && !packetInfo.packetAmount) {
|
|
||||||
count++
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return count
|
|
||||||
}
|
|
||||||
|
|
||||||
async function with_retry(ctx = "", callback_func, max_retry_times = 3, retry_interval = 5000) {
|
|
||||||
let data;
|
|
||||||
|
|
||||||
// 尝试开启今日的红包活动
|
|
||||||
for (let tryIdex = 1; tryIdex <= max_retry_times; tryIdex++) {
|
|
||||||
if (tryIdex > 1) {
|
|
||||||
console.debug(`[${tryIdex}/${max_retry_times}] 重新尝试 ${ctx}`)
|
|
||||||
}
|
|
||||||
|
|
||||||
data = await callback_func()
|
|
||||||
if (data) {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
||||||
console.error(`[${tryIdex}/${max_retry_times}] ${ctx} 请求时似乎出错了,有可能是网络波动,将等待 ${retry_interval / 1000} 秒,最多试 ${max_retry_times} 次\n`)
|
|
||||||
await wait(retry_interval)
|
|
||||||
}
|
|
||||||
|
|
||||||
return data
|
|
||||||
}
|
|
||||||
|
|
||||||
async function openRedPacket(cookie) {
|
|
||||||
var num = "";
|
|
||||||
for (var g = 0; g < 6; g++) {
|
|
||||||
num += Math.floor(Math.random() * 10);
|
|
||||||
}
|
|
||||||
// https://api.m.jd.com/api?appid=jinlihongbao&functionId=h5receiveRedpacketAll&loginType=2&client=jinlihongbao&t=1638189287348&clientVersion=10.2.4&osVersion=-1
|
|
||||||
let resp = await requestApi('h5receiveRedpacketAll', cookie, {
|
|
||||||
"random": num,
|
|
||||||
"log": "42588613~8,~0iuxyee",
|
|
||||||
"sceneid": "JLHBhPageh5"
|
|
||||||
});
|
|
||||||
if (resp?.data?.biz_code == 0) {
|
|
||||||
console.info(`领取到 ${resp.data.result?.discount} 元红包`)
|
|
||||||
} else {
|
|
||||||
console.error(`领取红包失败,结果为 ${JSON.stringify(resp)}`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function helpThisUser(help, tool) {
|
|
||||||
// 计算一个用于请求的随机参数
|
|
||||||
var num = "";
|
|
||||||
for (var i = 0; i < 6; i++) {
|
|
||||||
num += Math.floor(Math.random() * 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 实际发起请求
|
|
||||||
await requestApi('jinli_h5assist', tool.cookie, {
|
|
||||||
"redPacketId": help.redPacketId,
|
|
||||||
"followShop": 0,
|
|
||||||
"random": num,
|
|
||||||
"log": "42588613~8,~0iuxyee",
|
|
||||||
"sceneid": "JLHBhPageh5"
|
|
||||||
}).then(function (data) {
|
|
||||||
let desc = data?.data?.result?.statusDesc
|
|
||||||
if (desc) {
|
|
||||||
if (desc.indexOf("助力成功") != -1) {
|
|
||||||
help.helpCount += 1
|
|
||||||
tool.assisted = true
|
|
||||||
} else if (desc.indexOf("TA的助力已满") != -1) {
|
|
||||||
help.assist_full = true
|
|
||||||
} else {
|
|
||||||
// 不能重复为好友助力哦
|
|
||||||
// 今日助力次数已满
|
|
||||||
// 活动太火爆啦~去看看其他活动吧~
|
|
||||||
tool.assisted = true
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// undefined
|
|
||||||
tool.assisted = true
|
|
||||||
}
|
|
||||||
console.log(`${tool.id}->${help.id}`, desc)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
async function requestApi(functionId, cookie, body = {}) {
|
|
||||||
return new Promise(resolve => {
|
|
||||||
$.post({
|
|
||||||
url: `${JD_API_HOST}/api?appid=jinlihongbao&functionId=${functionId}&loginType=2&client=jinlihongbao&clientVersion=10.2.4&osVersion=AndroidOS&d_brand=Xiaomi&d_model=Xiaomi`,
|
|
||||||
headers: {
|
|
||||||
"Cookie": cookie,
|
|
||||||
"origin": "https://h5.m.jd.com",
|
|
||||||
"referer": "https://h5.m.jd.com/babelDiy/Zeus/2NUvze9e1uWf4amBhe1AV6ynmSuH/index.html",
|
|
||||||
'Content-Type': 'application/x-www-form-urlencoded',
|
|
||||||
"X-Requested-With": "com.jingdong.app.mall",
|
|
||||||
"User-Agent": ua,
|
|
||||||
},
|
|
||||||
body: `body=${escape(JSON.stringify(body))}`,
|
|
||||||
}, (_, resp, data) => {
|
|
||||||
try {
|
|
||||||
data = JSON.parse(data)
|
|
||||||
} catch (e) {
|
|
||||||
$.logErr('Error: ', e, resp)
|
|
||||||
console.warn(`请求${functionId}失败,data=${JSON.stringify(data)}, e=${JSON.stringify(e)}`)
|
|
||||||
} finally {
|
|
||||||
resolve(data)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
async function requireConfig() {
|
|
||||||
return new Promise(resolve => {
|
|
||||||
notify = $.isNode() ? require('./sendNotify') : '';
|
|
||||||
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
|
|
||||||
if ($.isNode()) {
|
|
||||||
Object.keys(jdCookieNode).forEach((item) => {
|
|
||||||
if (jdCookieNode[item]) {
|
|
||||||
cookiesArr.push(jdCookieNode[item])
|
|
||||||
}
|
|
||||||
})
|
|
||||||
if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item);
|
|
||||||
}
|
|
||||||
console.log(`共${cookiesArr.length}个京东账号\n`)
|
|
||||||
resolve()
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function randomString(e) {
|
|
||||||
e = e || 32;
|
|
||||||
let t = "abcdefhijkmnprstwxyz2345678",
|
|
||||||
a = t.length,
|
|
||||||
n = "";
|
|
||||||
for (let i = 0; i < e; i++)
|
|
||||||
n += t.charAt(Math.floor(Math.random() * a));
|
|
||||||
return n
|
|
||||||
}
|
|
||||||
|
|
||||||
function Env(t, e) {
|
|
||||||
"undefined" != typeof process && JSON.stringify(process.env).indexOf("GIT_HUB") > -1 && process.exit(0);
|
|
||||||
|
|
||||||
class s {
|
|
||||||
constructor(t) {
|
|
||||||
this.env = t
|
|
||||||
}
|
|
||||||
|
|
||||||
send(t, e = "GET") {
|
|
||||||
t = "string" == typeof t ? {
|
|
||||||
url: t
|
|
||||||
} : t;
|
|
||||||
let s = this.get;
|
|
||||||
return "POST" === e && (s = this.post), new Promise((e, i) => {
|
|
||||||
s.call(this, t, (t, s, r) => {
|
|
||||||
t ? i(t) : e(s)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
get(t) {
|
|
||||||
return this.send.call(this.env, t)
|
|
||||||
}
|
|
||||||
|
|
||||||
post(t) {
|
|
||||||
return this.send.call(this.env, t, "POST")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return new class {
|
|
||||||
constructor(t, e) {
|
|
||||||
this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`)
|
|
||||||
}
|
|
||||||
|
|
||||||
isNode() {
|
|
||||||
return "undefined" != typeof module && !!module.exports
|
|
||||||
}
|
|
||||||
|
|
||||||
isQuanX() {
|
|
||||||
return "undefined" != typeof $task
|
|
||||||
}
|
|
||||||
|
|
||||||
isSurge() {
|
|
||||||
return "undefined" != typeof $httpClient && "undefined" == typeof $loon
|
|
||||||
}
|
|
||||||
|
|
||||||
isLoon() {
|
|
||||||
return "undefined" != typeof $loon
|
|
||||||
}
|
|
||||||
|
|
||||||
toObj(t, e = null) {
|
|
||||||
try {
|
|
||||||
return JSON.parse(t)
|
|
||||||
} catch (e) {
|
|
||||||
return e
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
toStr(t, e = null) {
|
|
||||||
try {
|
|
||||||
return JSON.stringify(t)
|
|
||||||
} catch (e) {
|
|
||||||
return e
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
getjson(t, e) {
|
|
||||||
let s = e;
|
|
||||||
const i = this.getdata(t);
|
|
||||||
if (i) try {
|
|
||||||
s = JSON.parse(this.getdata(t))
|
|
||||||
} catch {
|
|
||||||
}
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
setjson(t, e) {
|
|
||||||
try {
|
|
||||||
return this.setdata(JSON.stringify(t), e)
|
|
||||||
} catch {
|
|
||||||
return !1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
getScript(t) {
|
|
||||||
return new Promise(e => {
|
|
||||||
this.get({
|
|
||||||
url: t
|
|
||||||
}, (t, s, i) => e(i))
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
runScript(t, e) {
|
|
||||||
return new Promise(s => {
|
|
||||||
let i = this.getdata("@chavy_boxjs_userCfgs.httpapi");
|
|
||||||
i = i ? i.replace(/\n/g, "").trim() : i;
|
|
||||||
let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");
|
|
||||||
r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r;
|
|
||||||
const [o, h] = i.split("@"), n = {
|
|
||||||
url: `http://${h}/v1/scripting/evaluate`,
|
|
||||||
body: {
|
|
||||||
script_text: t,
|
|
||||||
mock_type: "cron",
|
|
||||||
timeout: r
|
|
||||||
},
|
|
||||||
headers: {
|
|
||||||
"X-Key": o,
|
|
||||||
Accept: "*/*"
|
|
||||||
}
|
|
||||||
};
|
|
||||||
this.post(n, (t, e, i) => s(i))
|
|
||||||
}).catch(t => this.logErr(t))
|
|
||||||
}
|
|
||||||
|
|
||||||
loaddata() {
|
|
||||||
if (!this.isNode()) return {};
|
|
||||||
{
|
|
||||||
this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path");
|
|
||||||
const t = this.path.resolve(this.dataFile),
|
|
||||||
e = this.path.resolve(process.cwd(), this.dataFile),
|
|
||||||
s = this.fs.existsSync(t),
|
|
||||||
i = !s && this.fs.existsSync(e);
|
|
||||||
if (!s && !i) return {};
|
|
||||||
{
|
|
||||||
const i = s ? t : e;
|
|
||||||
try {
|
|
||||||
return JSON.parse(this.fs.readFileSync(i))
|
|
||||||
} catch (t) {
|
|
||||||
return {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
writedata() {
|
|
||||||
if (this.isNode()) {
|
|
||||||
this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path");
|
|
||||||
const t = this.path.resolve(this.dataFile),
|
|
||||||
e = this.path.resolve(process.cwd(), this.dataFile),
|
|
||||||
s = this.fs.existsSync(t),
|
|
||||||
i = !s && this.fs.existsSync(e),
|
|
||||||
r = JSON.stringify(this.data);
|
|
||||||
s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
lodash_get(t, e, s) {
|
|
||||||
const i = e.replace(/\[(\d+)\]/g, ".$1").split(".");
|
|
||||||
let r = t;
|
|
||||||
for (const t of i)
|
|
||||||
if (r = Object(r)[t], void 0 === r) return s;
|
|
||||||
return r
|
|
||||||
}
|
|
||||||
|
|
||||||
lodash_set(t, e, s) {
|
|
||||||
return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t)
|
|
||||||
}
|
|
||||||
|
|
||||||
getdata(t) {
|
|
||||||
let e = this.getval(t);
|
|
||||||
if (/^@/.test(t)) {
|
|
||||||
const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : "";
|
|
||||||
if (r) try {
|
|
||||||
const t = JSON.parse(r);
|
|
||||||
e = t ? this.lodash_get(t, i, "") : e
|
|
||||||
} catch (t) {
|
|
||||||
e = ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return e
|
|
||||||
}
|
|
||||||
|
|
||||||
setdata(t, e) {
|
|
||||||
let s = !1;
|
|
||||||
if (/^@/.test(e)) {
|
|
||||||
const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i),
|
|
||||||
h = i ? "null" === o ? null : o || "{}" : "{}";
|
|
||||||
try {
|
|
||||||
const e = JSON.parse(h);
|
|
||||||
this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i)
|
|
||||||
} catch (e) {
|
|
||||||
const o = {};
|
|
||||||
this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i)
|
|
||||||
}
|
|
||||||
} else s = this.setval(t, e);
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
getval(t) {
|
|
||||||
return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null
|
|
||||||
}
|
|
||||||
|
|
||||||
setval(t, e) {
|
|
||||||
return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null
|
|
||||||
}
|
|
||||||
|
|
||||||
initGotEnv(t) {
|
|
||||||
this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar))
|
|
||||||
}
|
|
||||||
|
|
||||||
get(t, e = (() => {
|
|
||||||
})) {
|
|
||||||
t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, {
|
|
||||||
"X-Surge-Skip-Scripting": !1
|
|
||||||
})), $httpClient.get(t, (t, s, i) => {
|
|
||||||
!t && s && (s.body = i, s.statusCode = s.status), e(t, s, i)
|
|
||||||
})) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, {
|
|
||||||
hints: !1
|
|
||||||
})), $task.fetch(t).then(t => {
|
|
||||||
const {
|
|
||||||
statusCode: s,
|
|
||||||
statusCode: i,
|
|
||||||
headers: r,
|
|
||||||
body: o
|
|
||||||
} = t;
|
|
||||||
e(null, {
|
|
||||||
status: s,
|
|
||||||
statusCode: i,
|
|
||||||
headers: r,
|
|
||||||
body: o
|
|
||||||
}, o)
|
|
||||||
}, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => {
|
|
||||||
try {
|
|
||||||
if (t.headers["set-cookie"]) {
|
|
||||||
const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();
|
|
||||||
s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar
|
|
||||||
}
|
|
||||||
} catch (t) {
|
|
||||||
this.logErr(t)
|
|
||||||
}
|
|
||||||
}).then(t => {
|
|
||||||
const {
|
|
||||||
statusCode: s,
|
|
||||||
statusCode: i,
|
|
||||||
headers: r,
|
|
||||||
body: o
|
|
||||||
} = t;
|
|
||||||
e(null, {
|
|
||||||
status: s,
|
|
||||||
statusCode: i,
|
|
||||||
headers: r,
|
|
||||||
body: o
|
|
||||||
}, o)
|
|
||||||
}, t => {
|
|
||||||
const {
|
|
||||||
message: s,
|
|
||||||
response: i
|
|
||||||
} = t;
|
|
||||||
e(s, i, i && i.body)
|
|
||||||
}))
|
|
||||||
}
|
|
||||||
|
|
||||||
post(t, e = (() => {
|
|
||||||
})) {
|
|
||||||
if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, {
|
|
||||||
"X-Surge-Skip-Scripting": !1
|
|
||||||
})), $httpClient.post(t, (t, s, i) => {
|
|
||||||
!t && s && (s.body = i, s.statusCode = s.status), e(t, s, i)
|
|
||||||
});
|
|
||||||
else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, {
|
|
||||||
hints: !1
|
|
||||||
})), $task.fetch(t).then(t => {
|
|
||||||
const {
|
|
||||||
statusCode: s,
|
|
||||||
statusCode: i,
|
|
||||||
headers: r,
|
|
||||||
body: o
|
|
||||||
} = t;
|
|
||||||
e(null, {
|
|
||||||
status: s,
|
|
||||||
statusCode: i,
|
|
||||||
headers: r,
|
|
||||||
body: o
|
|
||||||
}, o)
|
|
||||||
}, t => e(t));
|
|
||||||
else if (this.isNode()) {
|
|
||||||
this.initGotEnv(t);
|
|
||||||
const {
|
|
||||||
url: s,
|
|
||||||
...i
|
|
||||||
} = t;
|
|
||||||
this.got.post(s, i).then(t => {
|
|
||||||
const {
|
|
||||||
statusCode: s,
|
|
||||||
statusCode: i,
|
|
||||||
headers: r,
|
|
||||||
body: o
|
|
||||||
} = t;
|
|
||||||
e(null, {
|
|
||||||
status: s,
|
|
||||||
statusCode: i,
|
|
||||||
headers: r,
|
|
||||||
body: o
|
|
||||||
}, o)
|
|
||||||
}, t => {
|
|
||||||
const {
|
|
||||||
message: s,
|
|
||||||
response: i
|
|
||||||
} = t;
|
|
||||||
e(s, i, i && i.body)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
time(t, e = null) {
|
|
||||||
const s = e ? new Date(e) : new Date;
|
|
||||||
let i = {
|
|
||||||
"M+": s.getMonth() + 1,
|
|
||||||
"d+": s.getDate(),
|
|
||||||
"H+": s.getHours(),
|
|
||||||
"m+": s.getMinutes(),
|
|
||||||
"s+": s.getSeconds(),
|
|
||||||
"q+": Math.floor((s.getMonth() + 3) / 3),
|
|
||||||
S: s.getMilliseconds()
|
|
||||||
};
|
|
||||||
/(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length)));
|
|
||||||
for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length)));
|
|
||||||
return t
|
|
||||||
}
|
|
||||||
|
|
||||||
msg(e = t, s = "", i = "", r) {
|
|
||||||
const o = t => {
|
|
||||||
if (!t) return t;
|
|
||||||
if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? {
|
|
||||||
"open-url": t
|
|
||||||
} : this.isSurge() ? {
|
|
||||||
url: t
|
|
||||||
} : void 0;
|
|
||||||
if ("object" == typeof t) {
|
|
||||||
if (this.isLoon()) {
|
|
||||||
let e = t.openUrl || t.url || t["open-url"],
|
|
||||||
s = t.mediaUrl || t["media-url"];
|
|
||||||
return {
|
|
||||||
openUrl: e,
|
|
||||||
mediaUrl: s
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (this.isQuanX()) {
|
|
||||||
let e = t["open-url"] || t.url || t.openUrl,
|
|
||||||
s = t["media-url"] || t.mediaUrl;
|
|
||||||
return {
|
|
||||||
"open-url": e,
|
|
||||||
"media-url": s
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (this.isSurge()) {
|
|
||||||
let e = t.url || t.openUrl || t["open-url"];
|
|
||||||
return {
|
|
||||||
url: e
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) {
|
|
||||||
let t = ["", "==============📣系统通知📣=============="];
|
|
||||||
t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
log(...t) {
|
|
||||||
t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator))
|
|
||||||
}
|
|
||||||
|
|
||||||
logErr(t, e) {
|
|
||||||
const s = !this.isSurge() && !this.isQuanX() && !this.isLoon();
|
|
||||||
s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t)
|
|
||||||
}
|
|
||||||
|
|
||||||
wait(t) {
|
|
||||||
return new Promise(e => setTimeout(e, t))
|
|
||||||
}
|
|
||||||
|
|
||||||
done(t = {}) {
|
|
||||||
const e = (new Date).getTime(),
|
|
||||||
s = (e - this.startTime) / 1e3;
|
|
||||||
this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t)
|
|
||||||
}
|
|
||||||
}(t, e)
|
|
||||||
}
|
|
||||||
89
jd_bean_aggregation.cjs
Normal file
89
jd_bean_aggregation.cjs
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
/**
|
||||||
|
* 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()
|
||||||
File diff suppressed because it is too large
Load Diff
139
jd_bean_home.js
139
jd_bean_home.js
@ -2,23 +2,23 @@
|
|||||||
领京豆额外奖励&抢京豆
|
领京豆额外奖励&抢京豆
|
||||||
脚本自带助力码,介意者可将 29行 helpAuthor 变量设置为 false
|
脚本自带助力码,介意者可将 29行 helpAuthor 变量设置为 false
|
||||||
活动入口:京东APP首页-领京豆
|
活动入口:京东APP首页-领京豆
|
||||||
更新地址:https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_bean_home.js
|
更新地址:https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_bean_home.js
|
||||||
已支持IOS双京东账号, Node.js支持N个京东账号
|
已支持IOS双京东账号, Node.js支持N个京东账号
|
||||||
脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js
|
脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js
|
||||||
============Quantumultx===============
|
============Quantumultx===============
|
||||||
[task_local]
|
[task_local]
|
||||||
#领京豆额外奖励
|
#领京豆额外奖励
|
||||||
23 1,12,22 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_bean_home.js, tag=领京豆额外奖励, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_bean_home.png, enabled=true
|
23 1,18 * * * https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_bean_home.js, tag=领京豆额外奖励, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_bean_home.png, enabled=true
|
||||||
|
|
||||||
================Loon==============
|
================Loon==============
|
||||||
[Script]
|
[Script]
|
||||||
cron "23 1,12,22 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_bean_home.js, tag=领京豆额外奖励
|
cron "23 1,18 * * *" script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_bean_home.js, tag=领京豆额外奖励
|
||||||
|
|
||||||
===============Surge=================
|
===============Surge=================
|
||||||
领京豆额外奖励 = type=cron,cronexp="23 1,12,22 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_bean_home.js
|
领京豆额外奖励 = type=cron,cronexp="23 1,18 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_bean_home.js
|
||||||
|
|
||||||
============小火箭=========
|
============小火箭=========
|
||||||
领京豆额外奖励 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_bean_home.js, cronexpr="23 1,12,22 * * *", timeout=3600, enable=true
|
领京豆额外奖励 = type=cron,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_bean_home.js, cronexpr="23 1,18 * * *", timeout=3600, enable=true
|
||||||
*/
|
*/
|
||||||
const $ = new Env('领京豆额外奖励');
|
const $ = new Env('领京豆额外奖励');
|
||||||
|
|
||||||
@ -26,9 +26,10 @@ const notify = $.isNode() ? require('./sendNotify') : '';
|
|||||||
//Node.js用户请在jdCookie.js处填写京东ck;
|
//Node.js用户请在jdCookie.js处填写京东ck;
|
||||||
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
|
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
|
||||||
let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送
|
let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送
|
||||||
const helpAuthor = true; // 是否帮助作者助力,false打开通知推送,true关闭通知推送
|
const helpAuthor = false; // 是否帮助作者助力,false打开通知推送,true关闭通知推送
|
||||||
//IOS等用户直接用NobyDa的jd cookie
|
//IOS等用户直接用NobyDa的jd cookie
|
||||||
let cookiesArr = [], cookie = '', uuid = '', message;
|
let cookiesArr = [], cookie = '', uuid = '', message;
|
||||||
|
$.outFlag = false
|
||||||
if ($.isNode()) {
|
if ($.isNode()) {
|
||||||
Object.keys(jdCookieNode).forEach((item) => {
|
Object.keys(jdCookieNode).forEach((item) => {
|
||||||
cookiesArr.push(jdCookieNode[item])
|
cookiesArr.push(jdCookieNode[item])
|
||||||
@ -41,12 +42,6 @@ if ($.isNode()) {
|
|||||||
const JD_API_HOST = 'https://api.m.jd.com/';
|
const JD_API_HOST = 'https://api.m.jd.com/';
|
||||||
!(async () => {
|
!(async () => {
|
||||||
$.newShareCodes = []
|
$.newShareCodes = []
|
||||||
$.authorCode = await getAuthorShareCode('https://raw.githubusercontent.com/Aaron-lv/updateTeam/master/shareCodes/jd_updateBeanHome.json')
|
|
||||||
if (!$.authorCode) {
|
|
||||||
$.http.get({url: 'https://purge.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/jd_updateBeanHome.json'}).then((resp) => {}).catch((e) => $.log('刷新CDN异常', e));
|
|
||||||
await $.wait(1000)
|
|
||||||
$.authorCode = await getAuthorShareCode('https://cdn.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/jd_updateBeanHome.json') || []
|
|
||||||
}
|
|
||||||
if (!cookiesArr[0]) {
|
if (!cookiesArr[0]) {
|
||||||
$.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"});
|
$.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"});
|
||||||
return;
|
return;
|
||||||
@ -71,51 +66,52 @@ const JD_API_HOST = 'https://api.m.jd.com/';
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
await jdBeanHome();
|
await jdBeanHome();
|
||||||
|
await $.wait(parseInt(Math.random() * 5000 + 8000, 10))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (let i = 0; i < cookiesArr.length; i++) {
|
// for (let i = 0; i < cookiesArr.length; i++) {
|
||||||
$.index = i + 1;
|
// $.index = i + 1;
|
||||||
if (cookiesArr[i]) {
|
// if (cookiesArr[i]) {
|
||||||
cookie = cookiesArr[i];
|
// cookie = cookiesArr[i];
|
||||||
$.canHelp = true;
|
// $.canHelp = true;
|
||||||
$.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1])
|
// $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1])
|
||||||
if ($.newShareCodes.length > 1) {
|
// if ($.newShareCodes.length > 1) {
|
||||||
console.log(`\n【抢京豆】 ${$.UserName} 去助力排名第一的cookie`);
|
// console.log(`\n【抢京豆】 ${$.UserName} 去助力排名第一的cookie`);
|
||||||
// let code = $.newShareCodes[(i + 1) % $.newShareCodes.length]
|
// // let code = $.newShareCodes[(i + 1) % $.newShareCodes.length]
|
||||||
// await help(code[0], code[1])
|
// // await help(code[0], code[1])
|
||||||
let code = $.newShareCodes[0];
|
// let code = $.newShareCodes[0];
|
||||||
if(code[2] && code[2] === $.UserName){
|
// if(code[2] && code[2] === $.UserName){
|
||||||
//不助力自己
|
// //不助力自己
|
||||||
} else {
|
// } else {
|
||||||
await help(code[0], code[1]);
|
// await help(code[0], code[1]);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
if (helpAuthor && $.authorCode && $.canHelp) {
|
// if (helpAuthor && $.authorCode && $.canHelp) {
|
||||||
console.log(`\n【抢京豆】${$.UserName} 去帮助作者`)
|
// console.log(`\n【抢京豆】${$.UserName} 去帮助作者`)
|
||||||
for (let code of $.authorCode) {
|
// for (let code of $.authorCode) {
|
||||||
const helpRes = await help(code.shareCode, code.groupCode);
|
// const helpRes = await help(code.shareCode, code.groupCode);
|
||||||
if (helpRes && helpRes['code'] === '0') {
|
// if (helpRes && helpRes['code'] === '0') {
|
||||||
if (helpRes && helpRes.data && helpRes.data.respCode === 'SG209') {
|
// if (helpRes && helpRes.data && helpRes.data.respCode === 'SG209') {
|
||||||
console.log(`${helpRes.data.helpToast}\n`);
|
// console.log(`${helpRes.data.helpToast}\n`);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
} else {
|
// } else {
|
||||||
console.log(`助力异常:${JSON.stringify(helpRes)}\n`);
|
// console.log(`助力异常:${JSON.stringify(helpRes)}\n`);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
for (let j = 1; j < $.newShareCodes.length && $.canHelp; j++) {
|
// for (let j = 1; j < $.newShareCodes.length && $.canHelp; j++) {
|
||||||
let code = $.newShareCodes[j];
|
// let code = $.newShareCodes[j];
|
||||||
if(code[2] && code[2] === $.UserName){
|
// if(code[2] && code[2] === $.UserName){
|
||||||
//不助力自己
|
// //不助力自己
|
||||||
} else {
|
// } else {
|
||||||
console.log(`【抢京豆】${$.UserName} 去助力账号 ${j + 1}`);
|
// console.log(`【抢京豆】${$.UserName} 去助力账号 ${j + 1}`);
|
||||||
await help(code[0], code[1]);
|
// await help(code[0], code[1]);
|
||||||
await $.wait(2000);
|
// await $.wait(2000);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
})()
|
})()
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
$.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '')
|
$.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '')
|
||||||
@ -132,9 +128,11 @@ async function jdBeanHome() {
|
|||||||
// await $.wait(1000)
|
// await $.wait(1000)
|
||||||
// if ($.doneState) break
|
// if ($.doneState) break
|
||||||
// }
|
// }
|
||||||
|
$.outFlag = false
|
||||||
do {
|
do {
|
||||||
await doTask2()
|
await doTask2()
|
||||||
await $.wait(3000)
|
if ($.outFlag) break
|
||||||
|
await $.wait(5000)
|
||||||
} while (!$.doneState)
|
} while (!$.doneState)
|
||||||
await $.wait(1000)
|
await $.wait(1000)
|
||||||
await award("feeds")
|
await award("feeds")
|
||||||
@ -144,20 +142,20 @@ async function jdBeanHome() {
|
|||||||
await getTaskList();
|
await getTaskList();
|
||||||
await receiveJd2();
|
await receiveJd2();
|
||||||
|
|
||||||
await morningGetBean()
|
//await morningGetBean()
|
||||||
await $.wait(1000)
|
//await $.wait(1000)
|
||||||
|
|
||||||
await beanTaskList(1)
|
await beanTaskList(1)
|
||||||
await $.wait(1000)
|
await $.wait(2000)
|
||||||
await queryCouponInfo()
|
await queryCouponInfo()
|
||||||
$.doneState = false
|
$.doneState = false
|
||||||
let num = 0
|
let num = 0
|
||||||
do {
|
do {
|
||||||
await $.wait(2000)
|
await $.wait(3000)
|
||||||
await beanTaskList(2)
|
await beanTaskList(2)
|
||||||
num++
|
num++
|
||||||
} while (!$.doneState && num < 5)
|
} while (!$.doneState && num < 5)
|
||||||
await $.wait(2000)
|
await $.wait(3000)
|
||||||
if ($.doneState) await beanTaskList(3)
|
if ($.doneState) await beanTaskList(3)
|
||||||
|
|
||||||
await showMsg();
|
await showMsg();
|
||||||
@ -398,8 +396,9 @@ function doTask2() {
|
|||||||
$.post(taskUrl('beanHomeTask', body), (err, resp, data) => {
|
$.post(taskUrl('beanHomeTask', body), (err, resp, data) => {
|
||||||
try {
|
try {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
$.outFlag = true
|
||||||
console.log(`${JSON.stringify(err)}`)
|
console.log(`${JSON.stringify(err)}`)
|
||||||
console.log(`${$.name} API请求失败,请检查网路重试`)
|
console.log(`doTask2 API请求失败,请检查网路重试`)
|
||||||
} else {
|
} else {
|
||||||
if (safeGet(data)) {
|
if (safeGet(data)) {
|
||||||
data = JSON.parse(data);
|
data = JSON.parse(data);
|
||||||
@ -464,7 +463,7 @@ function getUserInfo() {
|
|||||||
try {
|
try {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log(`${JSON.stringify(err)}`)
|
console.log(`${JSON.stringify(err)}`)
|
||||||
console.log(`${$.name} API请求失败,请检查网路重试`)
|
console.log(`getUserInfo API请求失败,请检查网路重试`)
|
||||||
} else {
|
} else {
|
||||||
if (safeGet(data)) {
|
if (safeGet(data)) {
|
||||||
data = JSON.parse(data);
|
data = JSON.parse(data);
|
||||||
@ -502,7 +501,7 @@ function hitGroup() {
|
|||||||
try {
|
try {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log(`${JSON.stringify(err)}`)
|
console.log(`${JSON.stringify(err)}`)
|
||||||
console.log(`${$.name} API请求失败,请检查网路重试`)
|
console.log(`hitGroup API请求失败,请检查网路重试`)
|
||||||
} else {
|
} else {
|
||||||
if (safeGet(data)) {
|
if (safeGet(data)) {
|
||||||
data = JSON.parse(data);
|
data = JSON.parse(data);
|
||||||
@ -584,7 +583,7 @@ function getTaskList() {
|
|||||||
try {
|
try {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log(`${JSON.stringify(err)}`)
|
console.log(`${JSON.stringify(err)}`)
|
||||||
console.log(`${$.name} API请求失败,请检查网路重试`)
|
console.log(`getTaskList API请求失败,请检查网路重试`)
|
||||||
} else {
|
} else {
|
||||||
if (safeGet(data)) {
|
if (safeGet(data)) {
|
||||||
data = JSON.parse(data);
|
data = JSON.parse(data);
|
||||||
@ -620,7 +619,7 @@ function receiveTask(itemId = "zddd", type = "3") {
|
|||||||
try {
|
try {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log(`${JSON.stringify(err)}`)
|
console.log(`${JSON.stringify(err)}`)
|
||||||
console.log(`${$.name} API请求失败,请检查网路重试`)
|
console.log(`receiveTask API请求失败,请检查网路重试`)
|
||||||
} else {
|
} else {
|
||||||
if (safeGet(data)) {
|
if (safeGet(data)) {
|
||||||
data = JSON.parse(data);
|
data = JSON.parse(data);
|
||||||
@ -648,7 +647,8 @@ function award(source="home") {
|
|||||||
try {
|
try {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log(`${JSON.stringify(err)}`)
|
console.log(`${JSON.stringify(err)}`)
|
||||||
console.log(`${$.name} API请求失败,请检查网路重试`)
|
console.log(`award API请求失败,请检查网路重试`)
|
||||||
|
$.outFlag = true
|
||||||
} else {
|
} else {
|
||||||
if (safeGet(data)) {
|
if (safeGet(data)) {
|
||||||
data = JSON.parse(data);
|
data = JSON.parse(data);
|
||||||
@ -689,7 +689,8 @@ function receiveJd2() {
|
|||||||
try {
|
try {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log(`${JSON.stringify(err)}`)
|
console.log(`${JSON.stringify(err)}`)
|
||||||
console.log(`${$.name} API请求失败,请检查网路重试`)
|
console.log(`receiveJd2 API请求失败,请检查网路重试`)
|
||||||
|
$.outFlag = true
|
||||||
} else {
|
} else {
|
||||||
if (safeGet(data)) {
|
if (safeGet(data)) {
|
||||||
data = JSON.parse(data);
|
data = JSON.parse(data);
|
||||||
@ -780,7 +781,7 @@ function TotalBean() {
|
|||||||
try {
|
try {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log(`${JSON.stringify(err)}`)
|
console.log(`${JSON.stringify(err)}`)
|
||||||
console.log(`${$.name} API请求失败,请检查网路重试`)
|
console.log(`TotalBean API请求失败,请检查网路重试`)
|
||||||
} else {
|
} else {
|
||||||
if (data) {
|
if (data) {
|
||||||
data = JSON.parse(data);
|
data = JSON.parse(data);
|
||||||
|
|||||||
17
jd_bean_info.js
Executable file → Normal file
17
jd_bean_info.js
Executable file → Normal file
@ -1,3 +1,12 @@
|
|||||||
|
/*
|
||||||
|
* 详细版京东京豆统计
|
||||||
|
|
||||||
|
* 默认不发送通知。
|
||||||
|
|
||||||
|
[task_local]
|
||||||
|
#京豆详情统计
|
||||||
|
20 22 * * * jd_bean_info.js, tag=京豆详情统计, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true
|
||||||
|
* */
|
||||||
const $ = new Env('京豆详情统计');
|
const $ = new Env('京豆详情统计');
|
||||||
const notify = $.isNode() ? require('./sendNotify') : '';
|
const notify = $.isNode() ? require('./sendNotify') : '';
|
||||||
//Node.js用户请在jdCookie.js处填写京东ck;
|
//Node.js用户请在jdCookie.js处填写京东ck;
|
||||||
@ -20,6 +29,7 @@ if ($.isNode()) {
|
|||||||
$.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"});
|
$.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
console.log(`\n正在查询今天所有账号的京豆收入......`);
|
||||||
for (let i = 0; i < cookiesArr.length; i++) {
|
for (let i = 0; i < cookiesArr.length; i++) {
|
||||||
if (cookiesArr[i]) {
|
if (cookiesArr[i]) {
|
||||||
cookie = cookiesArr[i];
|
cookie = cookiesArr[i];
|
||||||
@ -36,7 +46,7 @@ if ($.isNode()) {
|
|||||||
$.balance = 0;
|
$.balance = 0;
|
||||||
$.expiredBalance = 0;
|
$.expiredBalance = 0;
|
||||||
await TotalBean();
|
await TotalBean();
|
||||||
console.log(`\n********开始【京东账号${$.index}】${$.nickName || $.UserName}******\n`);
|
//console.log(`\n********开始【京东账号${$.index}】${$.nickName || $.UserName}******\n`);
|
||||||
if (!$.isLogin) {
|
if (!$.isLogin) {
|
||||||
$.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"});
|
$.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"});
|
||||||
|
|
||||||
@ -51,8 +61,9 @@ if ($.isNode()) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
allMessage += `\n今日全部账号收入:${allBean}个京豆 🐶\n`
|
allMessage += `\n今日全部账号收入:${allBean}个京豆 🐶\n`
|
||||||
|
console.log(`${allMessage}`)
|
||||||
if ($.isNode() && allMessage) {
|
if ($.isNode() && allMessage) {
|
||||||
await notify.sendNotify(`${$.name}`, `${allMessage}`, { url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` })
|
//await notify.sendNotify(`${$.name}`, `${allMessage}`, { url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` })
|
||||||
}
|
}
|
||||||
})()
|
})()
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
@ -64,7 +75,7 @@ if ($.isNode()) {
|
|||||||
async function showMsg() {
|
async function showMsg() {
|
||||||
if ($.errorMsg) return
|
if ($.errorMsg) return
|
||||||
allMessage += `\n【账号${$.index}:${$.nickName || $.UserName} 京豆详情统计】\n\n`;
|
allMessage += `\n【账号${$.index}:${$.nickName || $.UserName} 京豆详情统计】\n\n`;
|
||||||
allMessage += `今日收入:${$.todayIncomeBean}个京豆 🐶\n`
|
allMessage += `今日收入总计:${$.todayIncomeBean}京豆 🐶\n`
|
||||||
allBean = allBean + parseInt($.todayIncomeBean)
|
allBean = allBean + parseInt($.todayIncomeBean)
|
||||||
for (let key of myMap.keys()) {
|
for (let key of myMap.keys()) {
|
||||||
allMessage += key + ' ---> ' +myMap.get(key)+'京豆 🐶\n'
|
allMessage += key + ' ---> ' +myMap.get(key)+'京豆 🐶\n'
|
||||||
|
|||||||
2299
jd_bean_sign.js
2299
jd_bean_sign.js
File diff suppressed because one or more lines are too long
268
jd_beans_7days.py
Normal file
268
jd_beans_7days.py
Normal file
@ -0,0 +1,268 @@
|
|||||||
|
# !/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Modify : 2022/5/13
|
||||||
|
# 京豆近7天输出表格统计
|
||||||
|
# 用不着每天跑,定时自行设置吧,配合desi可指定账号
|
||||||
|
# https://raw.githubusercontent.com/6dylan6/jdpro/main/jd_beans_7days.py
|
||||||
|
'''
|
||||||
|
new Env('豆子7天统计');
|
||||||
|
1 8 13 5 * jd_beans_7days.py
|
||||||
|
'''
|
||||||
|
|
||||||
|
import requests
|
||||||
|
import datetime
|
||||||
|
import os,re,sys,json,time
|
||||||
|
from urllib.parse import unquote
|
||||||
|
from datetime import timedelta
|
||||||
|
from datetime import timezone
|
||||||
|
|
||||||
|
try:
|
||||||
|
from prettytable import PrettyTable
|
||||||
|
except:
|
||||||
|
os.system('pip3 install prettytable &> /dev/null')
|
||||||
|
from prettytable import PrettyTable
|
||||||
|
|
||||||
|
SHA_TZ = timezone(
|
||||||
|
timedelta(hours=8),
|
||||||
|
name='Asia/Shanghai',
|
||||||
|
)
|
||||||
|
requests.adapters.DEFAULT_RETRIES = 5
|
||||||
|
session = requests.session()
|
||||||
|
session.keep_alive = False
|
||||||
|
|
||||||
|
url = "https://api.m.jd.com/api"
|
||||||
|
|
||||||
|
def gen_body(page):
|
||||||
|
body = {
|
||||||
|
"beginDate": datetime.datetime.utcnow().replace(tzinfo=timezone.utc).astimezone(SHA_TZ).strftime("%Y-%m-%d %H:%M:%S"),
|
||||||
|
"endDate": datetime.datetime.utcnow().replace(tzinfo=timezone.utc).astimezone(SHA_TZ).strftime("%Y-%m-%d %H:%M:%S"),
|
||||||
|
"pageNo": page,
|
||||||
|
"pageSize": 20,
|
||||||
|
}
|
||||||
|
return body
|
||||||
|
|
||||||
|
def printf(text):
|
||||||
|
print(text)
|
||||||
|
sys.stdout.flush()
|
||||||
|
|
||||||
|
def column_pad(*columns):
|
||||||
|
max_len = max([len(x) for x in columns])
|
||||||
|
for y in columns:
|
||||||
|
y.extend(['NaN']*(max_len-len(y)))
|
||||||
|
|
||||||
|
class getJDCookie(object):
|
||||||
|
|
||||||
|
# 获取cookie
|
||||||
|
def getCookie(self):
|
||||||
|
global cookies
|
||||||
|
cookies = []
|
||||||
|
try:
|
||||||
|
if "JD_COOKIE" in os.environ:
|
||||||
|
if len(os.environ["JD_COOKIE"]) > 10:
|
||||||
|
cookies = os.environ["JD_COOKIE"]
|
||||||
|
printf("\n当前从环境变量获取CK\n")
|
||||||
|
return
|
||||||
|
except Exception as e:
|
||||||
|
printf(f"【getCookie Error】{e}")
|
||||||
|
|
||||||
|
# 检测cookie格式是否正确
|
||||||
|
|
||||||
|
def getUserInfo(self, ck, pinName, userNum):
|
||||||
|
url = 'https://me-api.jd.com/user_new/info/GetJDUserInfoUnion?orgFlag=JD_PinGou_New&callSource=mainorder&channel=4&isHomewhite=0&sceneval=2&sceneval=2&callback='
|
||||||
|
headers = {
|
||||||
|
'Cookie': ck,
|
||||||
|
'Accept': '*/*',
|
||||||
|
'Connection': 'close',
|
||||||
|
'Referer': 'https://home.m.jd.com/myJd/home.action',
|
||||||
|
'Accept-Encoding': 'gzip, deflate, br',
|
||||||
|
'Host': 'me-api.jd.com',
|
||||||
|
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1',
|
||||||
|
'Accept-Language': 'zh-cn'
|
||||||
|
}
|
||||||
|
try:
|
||||||
|
if sys.platform == 'ios':
|
||||||
|
resp = requests.get(url=url, verify=False, headers=headers, timeout=60).json()
|
||||||
|
else:
|
||||||
|
resp = requests.get(url=url, headers=headers, timeout=60).json()
|
||||||
|
if resp['retcode'] == "0":
|
||||||
|
nickname = resp['data']['userInfo']['baseInfo']['nickname']
|
||||||
|
if not nickname:
|
||||||
|
nickname = resp['data']['userInfo']['baseInfo']['curPin']
|
||||||
|
return ck, nickname
|
||||||
|
else:
|
||||||
|
context = f"账号{userNum}【{pinName}】Cookie 已失效!请重新获取\n。"
|
||||||
|
printf(context)
|
||||||
|
return ck, False
|
||||||
|
except Exception:
|
||||||
|
context = f"账号{userNum}【{pinName}】Cookie 已失效!请重新获取\n。"
|
||||||
|
printf(context)
|
||||||
|
return ck, False
|
||||||
|
|
||||||
|
def iscookie(self):
|
||||||
|
"""
|
||||||
|
:return: cookiesList,userNameList,pinNameList
|
||||||
|
"""
|
||||||
|
cookiesList = []
|
||||||
|
userNameList = []
|
||||||
|
pinNameList = []
|
||||||
|
if 'pt_key=' in cookies and 'pt_pin=' in cookies:
|
||||||
|
r = re.compile(r"pt_key=.*?pt_pin=.*?;", re.M | re.S | re.I)
|
||||||
|
result = r.findall(cookies)
|
||||||
|
if len(result) >= 1:
|
||||||
|
printf("您有{}个账号".format(len(result)))
|
||||||
|
u = 1
|
||||||
|
for i in result:
|
||||||
|
r = re.compile(r"pt_pin=(.*?);")
|
||||||
|
pinName = r.findall(i)
|
||||||
|
pinName = unquote(pinName[0])
|
||||||
|
# 获取账号名
|
||||||
|
ck, nickname = self.getUserInfo(i, pinName, u)
|
||||||
|
if nickname:
|
||||||
|
cookiesList.append(ck)
|
||||||
|
userNameList.append(nickname)
|
||||||
|
pinNameList.append(pinName)
|
||||||
|
else:
|
||||||
|
u += 1
|
||||||
|
continue
|
||||||
|
u += 1
|
||||||
|
if len(cookiesList) > 0 and len(userNameList) > 0:
|
||||||
|
return cookiesList, userNameList, pinNameList
|
||||||
|
else:
|
||||||
|
printf("没有可用CK,已退出\n")
|
||||||
|
exit(3)
|
||||||
|
else:
|
||||||
|
printf("CK格式错误!...本次运行退出\n")
|
||||||
|
exit(4)
|
||||||
|
else:
|
||||||
|
printf("CK格式错误或无CK!...请检查\n")
|
||||||
|
exit(4)
|
||||||
|
|
||||||
|
|
||||||
|
getCk = getJDCookie()
|
||||||
|
getCk.getCookie()
|
||||||
|
|
||||||
|
|
||||||
|
def gen_params(page):
|
||||||
|
body = gen_body(page)
|
||||||
|
params = {
|
||||||
|
"functionId": "jposTradeQuery",
|
||||||
|
"appid": "swat_miniprogram",
|
||||||
|
"client": "tjj_m",
|
||||||
|
"sdkName": "orderDetail",
|
||||||
|
"sdkVersion": "1.0.0",
|
||||||
|
"clientVersion": "3.1.3",
|
||||||
|
"timestamp": int(round(time.time() * 1000)),
|
||||||
|
"body": json.dumps(body)
|
||||||
|
}
|
||||||
|
return params
|
||||||
|
|
||||||
|
def creat_bean_count(date, beansin, beansout, beanstotal):
|
||||||
|
tb = PrettyTable()
|
||||||
|
tb.add_column('DATE', date)
|
||||||
|
tb.add_column('BEANSIN', beansin)
|
||||||
|
tb.add_column('BEANSOUT', beansout)
|
||||||
|
tb.add_column('TOTAL', beanstotal)
|
||||||
|
printf(tb)
|
||||||
|
|
||||||
|
|
||||||
|
def get_beans_7days(ck):
|
||||||
|
try:
|
||||||
|
day_7 = True
|
||||||
|
page = 0
|
||||||
|
headers = {
|
||||||
|
"Host": "api.m.jd.com",
|
||||||
|
"Connection": "keep-alive",
|
||||||
|
"charset": "utf-8",
|
||||||
|
"User-Agent": "Mozilla/5.0 (Linux; Android 10; MI 9 Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.62 XWEB/2797 MMWEBSDK/201201 Mobile Safari/537.36 MMWEBID/7986 MicroMessenger/8.0.1840(0x2800003B) Process/appbrand4 WeChat/arm64 Weixin NetType/4G Language/zh_CN ABI/arm64 MiniProgramEnv/android",
|
||||||
|
"Content-Type": "application/x-www-form-urlencoded;",
|
||||||
|
"Accept-Encoding": "gzip, compress, deflate, br",
|
||||||
|
"Cookie": ck,
|
||||||
|
"Referer": "https://servicewechat.com/wxa5bf5ee667d91626/141/page-frame.html",
|
||||||
|
}
|
||||||
|
days = []
|
||||||
|
for i in range(0, 7):
|
||||||
|
days.append((datetime.date.today() - datetime.timedelta(days=i)).strftime("%Y-%m-%d"))
|
||||||
|
beans_in = {key: 0 for key in days}
|
||||||
|
beans_out = {key: 0 for key in days}
|
||||||
|
while day_7:
|
||||||
|
page = page + 1
|
||||||
|
resp = session.get(url, params=gen_params(page), headers=headers, timeout=100).text
|
||||||
|
res = json.loads(resp)
|
||||||
|
if res['resultCode'] == 0 and res['data']['list'] != []:
|
||||||
|
for i in res['data']['list']:
|
||||||
|
for date in days:
|
||||||
|
if str(date) in i['createDate'] and i['amount'] > 0:
|
||||||
|
beans_in[str(date)] = beans_in[str(date)] + i['amount']
|
||||||
|
break
|
||||||
|
elif str(date) in i['createDate'] and i['amount'] < 0:
|
||||||
|
beans_out[str(date)] = beans_out[str(date)] + i['amount']
|
||||||
|
break
|
||||||
|
if i['createDate'].split(' ')[0] not in str(days):
|
||||||
|
day_7 = False
|
||||||
|
else:
|
||||||
|
print("未获取到数据,原因未知!!\n")
|
||||||
|
return {'code': 400, 'data': res}
|
||||||
|
return {'code': 200, 'data': [beans_in, beans_out, days]}
|
||||||
|
except Exception as e:
|
||||||
|
print(str(e))
|
||||||
|
return {'code': 400, 'data': str(e)}
|
||||||
|
|
||||||
|
|
||||||
|
def get_total_beans(ck):
|
||||||
|
try:
|
||||||
|
headers = {
|
||||||
|
"Host": "wxapp.m.jd.com",
|
||||||
|
"Connection": "keep-alive",
|
||||||
|
"charset": "utf-8",
|
||||||
|
"User-Agent": "Mozilla/5.0 (Linux; Android 10; MI 9 Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.62 XWEB/2797 MMWEBSDK/201201 Mobile Safari/537.36 MMWEBID/7986 MicroMessenger/8.0.1840(0x2800003B) Process/appbrand4 WeChat/arm64 Weixin NetType/4G Language/zh_CN ABI/arm64 MiniProgramEnv/android",
|
||||||
|
"Content-Type": "application/x-www-form-urlencoded;",
|
||||||
|
"Accept-Encoding": "gzip, compress, deflate, br",
|
||||||
|
"Cookie": ck,
|
||||||
|
}
|
||||||
|
jurl = "https://wxapp.m.jd.com/kwxhome/myJd/home.json"
|
||||||
|
resp = session.get(jurl, headers=headers, timeout=100).text
|
||||||
|
res = json.loads(resp)
|
||||||
|
return res['user']['jingBean']
|
||||||
|
except Exception as e:
|
||||||
|
printf(str(e))
|
||||||
|
|
||||||
|
|
||||||
|
def get_bean_data(i,ck):
|
||||||
|
try:
|
||||||
|
if ck:
|
||||||
|
#ck = cookies[i-1]
|
||||||
|
beans_res = get_beans_7days(ck)
|
||||||
|
beantotal = get_total_beans(ck)
|
||||||
|
if beans_res['code'] != 200:
|
||||||
|
return beans_res
|
||||||
|
else:
|
||||||
|
beans_in, beans_out = [], []
|
||||||
|
beanstotal = [int(beantotal), ]
|
||||||
|
for i in beans_res['data'][0]:
|
||||||
|
beantotal = int(beantotal) - int(beans_res['data'][0][i]) - int(beans_res['data'][1][i])
|
||||||
|
beans_in.append(int(beans_res['data'][0][i]))
|
||||||
|
beans_out.append(int(str(beans_res['data'][1][i]).replace('-', '')))
|
||||||
|
beanstotal.append(beantotal)
|
||||||
|
return {'code': 200, 'data': [beans_in[::-1], beans_out[::-1], beanstotal[::-1], beans_res['data'][2][::-1]]}
|
||||||
|
except Exception as e:
|
||||||
|
print(str(e))
|
||||||
|
|
||||||
|
def query():
|
||||||
|
try:
|
||||||
|
global cookiesList, userNameList, pinNameList, ckNum, beanCount, userCount
|
||||||
|
cookiesList, userNameList, pinNameList = getCk.iscookie()
|
||||||
|
for i,ck,user,pin in zip(range(1,len(cookiesList)+1),cookiesList,userNameList,pinNameList):
|
||||||
|
printf(f"\n****** [账号{i}]-{user} ******")
|
||||||
|
res=get_bean_data(i,ck)
|
||||||
|
if res['code'] != 200:
|
||||||
|
printf(res['data'])
|
||||||
|
continue
|
||||||
|
if res['data'][2][1:] != []:
|
||||||
|
creat_bean_count(res['data'][3], res['data'][0], res['data'][1], res['data'][2][1:])
|
||||||
|
time.sleep(2)
|
||||||
|
except Exception as e:
|
||||||
|
printf(str(e))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
query()
|
||||||
135
jd_beauty.js
135
jd_beauty.js
@ -3,12 +3,12 @@
|
|||||||
修复+尽量优化为同步执行,减少并发,说不定就减小黑号概率了呢?
|
修复+尽量优化为同步执行,减少并发,说不定就减小黑号概率了呢?
|
||||||
https://raw.githubusercontent.com/aTenb/jdOpenSharePicker/master/jd_beautyStudy.js
|
https://raw.githubusercontent.com/aTenb/jdOpenSharePicker/master/jd_beautyStudy.js
|
||||||
更新时间:2021-12-03
|
更新时间:2021-12-03
|
||||||
|
来源 Dylan
|
||||||
活动入口:京东app首页-美妆馆-底部中间按钮
|
活动入口:京东app首页-美妆馆-底部中间按钮
|
||||||
20 7,12,19 * * * jd_beautyStudy.js, tag=美丽研究院, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true
|
定时自定义,集中访问可能炸
|
||||||
*/
|
*/
|
||||||
const $ = new Env('美丽研究院');
|
const $ = new Env('美丽研究院');
|
||||||
const notify = $.isNode() ? require('./sendNotify') : '';
|
const notify = $.isNode() ? require('./sendNotify') : '';
|
||||||
console.log('已废弃,能不能用随缘!!!')
|
|
||||||
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
|
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
|
||||||
const WebSocket = require('ws');
|
const WebSocket = require('ws');
|
||||||
const UA = process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)
|
const UA = process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)
|
||||||
@ -50,7 +50,7 @@ const JD_API_HOST = 'https://api.m.jd.com/client.action';
|
|||||||
$.nickName = '';
|
$.nickName = '';
|
||||||
message = '';
|
message = '';
|
||||||
$.token = '';
|
$.token = '';
|
||||||
await TotalBean();
|
//await TotalBean();
|
||||||
console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`);
|
console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`);
|
||||||
if (!$.isLogin) {
|
if (!$.isLogin) {
|
||||||
$.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/`, {"open-url": "https://bean.m.jd.com/"});
|
$.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/`, {"open-url": "https://bean.m.jd.com/"});
|
||||||
@ -61,7 +61,9 @@ const JD_API_HOST = 'https://api.m.jd.com/client.action';
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
await accountCheck();
|
await accountCheck();
|
||||||
await $.wait(10000)
|
while (!$.hasDone) {
|
||||||
|
await $.wait(3000)
|
||||||
|
}
|
||||||
if ($.accountCheck) {
|
if ($.accountCheck) {
|
||||||
await jdBeauty();
|
await jdBeauty();
|
||||||
}
|
}
|
||||||
@ -80,7 +82,7 @@ const JD_API_HOST = 'https://api.m.jd.com/client.action';
|
|||||||
|
|
||||||
async function accountCheck() {
|
async function accountCheck() {
|
||||||
$.hasDone = false;
|
$.hasDone = false;
|
||||||
console.log(`***检测账号是否黑号***`);
|
//console.log(`***检测账号是否黑号***`);
|
||||||
await getIsvToken()
|
await getIsvToken()
|
||||||
await $.wait(10000)
|
await $.wait(10000)
|
||||||
await getIsvToken2()
|
await getIsvToken2()
|
||||||
@ -100,9 +102,9 @@ async function accountCheck() {
|
|||||||
client.onopen = async () => {
|
client.onopen = async () => {
|
||||||
console.log(`美容研究院服务器连接成功`);
|
console.log(`美容研究院服务器连接成功`);
|
||||||
client.send('{"msg":{"type":"action","args":{"source":1},"action":"_init_"}}');
|
client.send('{"msg":{"type":"action","args":{"source":1},"action":"_init_"}}');
|
||||||
await $.wait(20000);
|
await $.wait(10000);
|
||||||
client.send(`{"msg":{"type":"action","args":{"source":1},"action":"get_user"}}`);
|
client.send(`{"msg":{"type":"action","args":{"source":1},"action":"get_user"}}`);
|
||||||
await $.wait(20000);
|
await $.wait(10000);
|
||||||
};
|
};
|
||||||
client.onmessage = async function (e) {
|
client.onmessage = async function (e) {
|
||||||
if (e.data !== 'pong' && e.data && safeGet(e.data)) {
|
if (e.data !== 'pong' && e.data && safeGet(e.data)) {
|
||||||
@ -141,6 +143,7 @@ async function jdBeauty() {
|
|||||||
async function mr() {
|
async function mr() {
|
||||||
$.coins = 0
|
$.coins = 0
|
||||||
let positionList = ['b1', 'h1', 's1', 'b2', 'h2', 's2']
|
let positionList = ['b1', 'h1', 's1', 'b2', 'h2', 's2']
|
||||||
|
let positionList2 = ['b2', 'h2', 's2']
|
||||||
$.tokens = []
|
$.tokens = []
|
||||||
$.pos = []
|
$.pos = []
|
||||||
$.helpInfo = []
|
$.helpInfo = []
|
||||||
@ -162,18 +165,24 @@ async function mr() {
|
|||||||
await $.wait(10000);
|
await $.wait(10000);
|
||||||
}
|
}
|
||||||
console.log(`\n========生产任务相关========\n`)
|
console.log(`\n========生产任务相关========\n`)
|
||||||
|
for (let help of helpInfo) {
|
||||||
|
client.send(help);
|
||||||
|
}
|
||||||
|
await $.wait(3000)
|
||||||
client.send(`{"msg":{"type":"action","args":{},"action":"get_produce_material"}}`)
|
client.send(`{"msg":{"type":"action","args":{},"action":"get_produce_material"}}`)
|
||||||
await $.wait(20000);
|
await $.wait(10000);
|
||||||
// 获得正在生产的商品信息
|
// 获得正在生产的商品信息
|
||||||
client.send('{"msg":{"type":"action","args":{},"action":"product_producing"}}')
|
client.send('{"msg":{"type":"action","args":{},"action":"product_producing"}}')
|
||||||
await $.wait(20000);
|
await $.wait(10000);
|
||||||
|
// 获得库存
|
||||||
|
client.send(`{"msg":{"type":"action","args":{},"action":"get_package"}}`)
|
||||||
// 获得可生成的商品列表
|
// 获得可生成的商品列表
|
||||||
client.send(`{"msg":{"type":"action","args":{"page":1,"num":10},"action":"product_lists"}}`)
|
client.send(`{"msg":{"type":"action","args":{"page":1,"num":10},"action":"product_lists"}}`)
|
||||||
await $.wait(20000);
|
await $.wait(10000);
|
||||||
// 获得原料生产列表
|
// 获得原料生产列表
|
||||||
for (let pos of positionList) {
|
for (let pos of positionList) {
|
||||||
client.send(`{"msg":{"type":"action","args":{"position":"${pos}"},"action":"produce_position_info_v2"}}`)
|
client.send(`{"msg":{"type":"action","args":{"position":"${pos}"},"action":"produce_position_info_v2"}}`)
|
||||||
await $.wait(20000);
|
await $.wait(10000);
|
||||||
}
|
}
|
||||||
console.log(`\n========日常任务相关========`)
|
console.log(`\n========日常任务相关========`)
|
||||||
client.send(`{"msg":{"type":"action","args":{},"action":"check_up"}}`)
|
client.send(`{"msg":{"type":"action","args":{},"action":"check_up"}}`)
|
||||||
@ -187,7 +196,7 @@ async function mr() {
|
|||||||
await $.wait(50000);
|
await $.wait(50000);
|
||||||
//最后做时间最久的日常任务
|
//最后做时间最久的日常任务
|
||||||
client.send(`{"msg":{"type":"action","args":{},"action":"shop_products"}}`)
|
client.send(`{"msg":{"type":"action","args":{},"action":"shop_products"}}`)
|
||||||
await $.wait(20000);
|
await $.wait(10000);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
client.onclose = () => {
|
client.onclose = () => {
|
||||||
@ -196,7 +205,10 @@ async function mr() {
|
|||||||
$.init = true;
|
$.init = true;
|
||||||
$.hasDone = true;
|
$.hasDone = true;
|
||||||
for (let i = 0; i < $.pos.length && i < $.tokens.length; ++i) {
|
for (let i = 0; i < $.pos.length && i < $.tokens.length; ++i) {
|
||||||
$.helpInfo.push(`{"msg":{"type":"action","args":{"inviter_id":"${$.userInfo.id}","position":"${$.pos[i]}","token":"${$.tokens[i]}"},"action":"employee"}}`)
|
client.send(`{"msg":{"type":"action","args":{"inviter_id":"${$.userInfo.id}"},"action":"employee_get_user"}}`);
|
||||||
|
$.helpInfo.push(`{"msg":{"type":"action","args":{"inviter_id":"${$.userInfo.id}","position":"${$.pos[i]}","token":"${$.tokens[i]}"},"action":"employee_v2"}}`)
|
||||||
|
client.send(`{"msg":{"type":"action","args":{"inviter_id":"${$.userInfo.id}","position":"${$.pos[i]}"},"action":"employee_speed_v2"}}`);
|
||||||
|
client.send(`{"msg":{"action":"write","type":"action","args":{"action_type":3,"channel":2,"source_app":2}}}`);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
client.onmessage = async function (e) {
|
client.onmessage = async function (e) {
|
||||||
@ -211,9 +223,9 @@ async function mr() {
|
|||||||
// 去签到
|
// 去签到
|
||||||
console.log(`去做签到任务`)
|
console.log(`去做签到任务`)
|
||||||
client.send(`{"msg":{"type":"action","args":{},"action":"sign_in"}}`)
|
client.send(`{"msg":{"type":"action","args":{},"action":"sign_in"}}`)
|
||||||
await $.wait(20000);
|
await $.wait(10000);
|
||||||
client.send(`{"msg":{"action":"write","type":"action","args":{"action_type":1,"channel":2,"source_app":2}}}`)
|
client.send(`{"msg":{"action":"write","type":"action","args":{"action_type":1,"channel":2,"source_app":2}}}`)
|
||||||
await $.wait(20000);
|
await $.wait(10000);
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
case "get_user":
|
case "get_user":
|
||||||
@ -223,7 +235,7 @@ async function mr() {
|
|||||||
console.log(`去做新手任务`)
|
console.log(`去做新手任务`)
|
||||||
for (let i = $.userInfo.step; i < 15; ++i) {
|
for (let i = $.userInfo.step; i < 15; ++i) {
|
||||||
client.send(`{"msg":{"type":"action","args":{},"action":"newcomer_update"}}`)
|
client.send(`{"msg":{"type":"action","args":{},"action":"newcomer_update"}}`)
|
||||||
await $.wait(20000);
|
await $.wait(10000);
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
$.init = true;
|
$.init = true;
|
||||||
@ -276,11 +288,14 @@ async function mr() {
|
|||||||
}
|
}
|
||||||
await $.wait(10000);
|
await $.wait(10000);
|
||||||
}
|
}
|
||||||
for (let i = $.taskState.meetingplace_view; i < $.taskState.mettingplace_count; ++i) {
|
if ($.taskState.meetingplace_view.length <= vo.data.meetingplaces.length) {
|
||||||
console.log(`去做第${i + 1}次浏览会场任务`)
|
for (let vc of vo.data.meetingplaces) {
|
||||||
client.send(`{"msg":{"type":"action","args":{"source":1},"action":"meetingplace_view"}}`)
|
console.log(`去做第${vc.name}浏览会场任务`)
|
||||||
await $.wait(10000);
|
client.send(`{"msg":{"type":"action","args":{"source":1,"meetingplace_id":${vc.id}},"action":"meetingplace_view"}}`)
|
||||||
|
await $.wait(2500)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($.taskState.today_answered === 0) {
|
if ($.taskState.today_answered === 0) {
|
||||||
console.log(`去做每日问答任务`)
|
console.log(`去做每日问答任务`)
|
||||||
client.send(`{"msg":{"type":"action","args":{"source":1},"action":"get_question"}}`)
|
client.send(`{"msg":{"type":"action","args":{"source":1},"action":"get_question"}}`)
|
||||||
@ -351,7 +366,7 @@ async function mr() {
|
|||||||
client.send(`{"msg":{"type":"action","args":{"position":"${vo.data.position}","material_id":${ma.id}},"action":"material_produce_v2"}}`)
|
client.send(`{"msg":{"type":"action","args":{"position":"${vo.data.position}","material_id":${ma.id}},"action":"material_produce_v2"}}`)
|
||||||
await $.wait(5000);
|
await $.wait(5000);
|
||||||
} else {
|
} else {
|
||||||
ma = $.material.base[1]['items'][positionList.indexOf(vo.data.position)]
|
ma = $.material.base[1]['items'][positionList2.indexOf(vo.data.position)]
|
||||||
if (ma) {
|
if (ma) {
|
||||||
console.log(`else去生产${ma.name}`)
|
console.log(`else去生产${ma.name}`)
|
||||||
client.send(`{"msg":{"type":"action","args":{"position":"${vo.data.position}","material_id":${ma.id}},"action":"material_produce_v2"}}`)
|
client.send(`{"msg":{"type":"action","args":{"position":"${vo.data.position}","material_id":${ma.id}},"action":"material_produce_v2"}}`)
|
||||||
@ -397,7 +412,7 @@ async function mr() {
|
|||||||
case "product_lists":
|
case "product_lists":
|
||||||
let need_material = []
|
let need_material = []
|
||||||
if (vo.code === '200' || vo.code === 200) {
|
if (vo.code === '200' || vo.code === 200) {
|
||||||
$.products = vo.data.filter(vo=>vo.level===$.level)
|
$.products = vo.data.filter(vo=>vo.level===$.level-1)
|
||||||
console.log(`========可生产商品信息========`)
|
console.log(`========可生产商品信息========`)
|
||||||
for (let product of $.products) {
|
for (let product of $.products) {
|
||||||
let num = Infinity
|
let num = Infinity
|
||||||
@ -426,6 +441,7 @@ async function mr() {
|
|||||||
console.log(`【${product.name}】可生产份数大于0,去生产`)
|
console.log(`【${product.name}】可生产份数大于0,去生产`)
|
||||||
//product_produce 产品研发里的生产
|
//product_produce 产品研发里的生产
|
||||||
client.send(`{"msg":{"type":"action","args":{"product_id":${product.id},"amount":${num}},"action":"product_produce"}}`)
|
client.send(`{"msg":{"type":"action","args":{"product_id":${product.id},"amount":${num}},"action":"product_produce"}}`)
|
||||||
|
client.send(`{"msg":{"type":"action","args":{"product_id":${product.id},"amount":${num}},"action":"once_completion"}}`)
|
||||||
await $.wait(10000);
|
await $.wait(10000);
|
||||||
} else {
|
} else {
|
||||||
console.log(msg)
|
console.log(msg)
|
||||||
@ -489,9 +505,9 @@ async function mr() {
|
|||||||
for (let benefit of vo.data) {
|
for (let benefit of vo.data) {
|
||||||
if (benefit.type === 1) { //type 1 是京豆
|
if (benefit.type === 1) { //type 1 是京豆
|
||||||
//console.log(`benefit:${JSON.stringify(benefit)}`);
|
//console.log(`benefit:${JSON.stringify(benefit)}`);
|
||||||
if(benefit.description === "1 京豆" && parseInt(benefit.day_exchange_count) < 10 && $.total > benefit.coins){
|
if(benefit.description === "1 京豆" && parseInt(benefit.day_exchange_count) < 5 && $.total > benefit.coins){
|
||||||
$timenum = parseInt($.total / benefit.coins);
|
$timenum = parseInt($.total / benefit.coins);
|
||||||
if ($timenum > 10) $timenum = 10;
|
if ($timenum > 5) $timenum = 5;
|
||||||
console.log(`\n可兑换${$timenum}次京豆:`)
|
console.log(`\n可兑换${$timenum}次京豆:`)
|
||||||
for (let i = 0; i < $timenum; i++){
|
for (let i = 0; i < $timenum; i++){
|
||||||
client.send(`{"msg":{"type":"action","args":{"benefit_id":${benefit.id}},"action":"to_exchange"}}`);
|
client.send(`{"msg":{"type":"action","args":{"benefit_id":${benefit.id}},"action":"to_exchange"}}`);
|
||||||
@ -513,7 +529,7 @@ async function mr() {
|
|||||||
break
|
break
|
||||||
case "to_exchange":
|
case "to_exchange":
|
||||||
if(oc(() => vo.data.coins)){
|
if(oc(() => vo.data.coins)){
|
||||||
console.log(`兑换${vo.data.coins/-1000}京豆成功`)
|
console.log(`兑换${vo.data.coins/-10000}京豆成功`)
|
||||||
}else{
|
}else{
|
||||||
console.log(`兑换京豆失败`)
|
console.log(`兑换京豆失败`)
|
||||||
}
|
}
|
||||||
@ -521,15 +537,15 @@ async function mr() {
|
|||||||
case "get_produce_material":
|
case "get_produce_material":
|
||||||
$.material = vo.data
|
$.material = vo.data
|
||||||
break
|
break
|
||||||
case "to_employee":
|
//case "to_employee":
|
||||||
console.log(`雇佣助力码【${oc(() => vo.data.token)}】`)
|
// console.log(`雇佣助力码【${oc(() => vo.data.token)}】`)
|
||||||
if(oc(() => vo.data.token)){
|
// if(oc(() => vo.data.token)){
|
||||||
$.tokens.push(vo.data.token)
|
// $.tokens.push(vo.data.token)
|
||||||
}else{
|
// }else{
|
||||||
console.log(`not exist:${oc(() => vo.data)}`)
|
// console.log(`not exist:${oc(() => vo.data)}`)
|
||||||
}
|
// }
|
||||||
break
|
// break
|
||||||
case "employee":
|
case "employee_v2":
|
||||||
console.log(`${vo.msg}`)
|
console.log(`${vo.msg}`)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
@ -559,7 +575,7 @@ function getIsvToken() {
|
|||||||
if (safeGet(data)) {
|
if (safeGet(data)) {
|
||||||
data = JSON.parse(data);
|
data = JSON.parse(data);
|
||||||
$.isvToken = data['tokenKey'];
|
$.isvToken = data['tokenKey'];
|
||||||
console.log(`isvToken:${$.isvToken}`);
|
//console.log(`isvToken:${$.isvToken}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@ -571,19 +587,25 @@ function getIsvToken() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function getIsvToken2() {
|
async function getIsvToken2() {
|
||||||
|
for (let i=0; i<3; i++){
|
||||||
|
var body = await getSignfromDY('isvObfuscator',{"id":"","url":"https://xinruimz-isv.isvjcloud.com"})
|
||||||
|
if(body) break;
|
||||||
|
await $.wait(5000)
|
||||||
|
}
|
||||||
let config = {
|
let config = {
|
||||||
url: 'https://api.m.jd.com/client.action?functionId=isvObfuscator',
|
url: 'https://api.m.jd.com/client.action?functionId=isvObfuscator',
|
||||||
body: 'body=%7B%22url%22%3A%22https%3A%5C/%5C/xinruimz-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167490&client=apple&clientVersion=9.3.2&openudid=53f4d9c70c1c81f1c8769d2fe2fef0190a3f60d2&osVersion=14.2&partner=apple&rfs=0000&scope=01&sign=6eb3237cff376c07a11c1e185761d073&st=1610161927336&sv=102&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D',
|
body: `${$.Signz}`,
|
||||||
headers: {
|
headers: {
|
||||||
'Host': 'api.m.jd.com',
|
'Host': 'api.m.jd.com',
|
||||||
'accept': '*/*',
|
'accept': '*/*',
|
||||||
'user-agent': UA,
|
'user-agent': UA,
|
||||||
'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6',
|
//'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6',
|
||||||
'content-type': 'application/x-www-form-urlencoded',
|
//'content-type': 'application/x-www-form-urlencoded',
|
||||||
'Cookie': cookie
|
'Cookie': cookie
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
$.post(config, async (err, resp, data) => {
|
$.post(config, async (err, resp, data) => {
|
||||||
try {
|
try {
|
||||||
@ -594,7 +616,7 @@ function getIsvToken2() {
|
|||||||
if (safeGet(data)) {
|
if (safeGet(data)) {
|
||||||
data = JSON.parse(data);
|
data = JSON.parse(data);
|
||||||
$.token2 = data['token']
|
$.token2 = data['token']
|
||||||
console.log(`token2:${$.token2}`);
|
//console.log(`token2:${$.token2}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@ -605,11 +627,36 @@ function getIsvToken2() {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
function getSignfromDY(functionId, body) {
|
||||||
|
let data={'fn':functionId,'body':JSON.stringify(body)};
|
||||||
|
let optionsions={'url':'https://api.nolanstore.top/sign','body':JSON.stringify(data),'headers':{"Content-Type": "application/json"},'timeout':30000};
|
||||||
|
return new Promise(async resolve=>{
|
||||||
|
$.post(optionsions,(err,resp,data)=>{
|
||||||
|
try{
|
||||||
|
if(err){
|
||||||
|
console.log(''+JSON.stringify(err));
|
||||||
|
console.log($.name+' getSign API请求失败,请检查网路重试');
|
||||||
|
}else{
|
||||||
|
data=JSON.parse(data);
|
||||||
|
if((typeof data==='object')&&data&&data.body){
|
||||||
|
$.Signz=data.body ||'';
|
||||||
|
} else {
|
||||||
|
console.log('获取服务失败~~');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}catch(e){
|
||||||
|
$.logErr(e,resp);
|
||||||
|
}
|
||||||
|
finally{
|
||||||
|
resolve(data);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
function getToken() {
|
function getToken() {
|
||||||
let config = {
|
let config = {
|
||||||
url: 'https://xinruimz-isv.isvjcloud.com/api/auth',
|
url: 'https://xinruimz-isv.isvjcloud.com/api/auth',
|
||||||
body: JSON.stringify({"token":$.token2,"source":"01"}),
|
body: JSON.stringify({"token":$.token2,"source":"01","channel":"meizhuangguandibudaohang"}),
|
||||||
headers: {
|
headers: {
|
||||||
'Host': 'xinruimz-isv.isvjcloud.com',
|
'Host': 'xinruimz-isv.isvjcloud.com',
|
||||||
'Accept': 'application/x.jd-school-island.v1+json',
|
'Accept': 'application/x.jd-school-island.v1+json',
|
||||||
@ -620,7 +667,7 @@ function getToken() {
|
|||||||
'user-agent': UA,
|
'user-agent': UA,
|
||||||
'Referer': 'https://xinruimz-isv.isvjcloud.com/logined_jd/',
|
'Referer': 'https://xinruimz-isv.isvjcloud.com/logined_jd/',
|
||||||
'Authorization': 'Bearer undefined',
|
'Authorization': 'Bearer undefined',
|
||||||
'Cookie': `IsvToken=${$.isvToken};`
|
'Cookie': `IsvToken=${$.token2};`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
@ -633,7 +680,7 @@ function getToken() {
|
|||||||
if (safeGet(data)) {
|
if (safeGet(data)) {
|
||||||
data = JSON.parse(data);
|
data = JSON.parse(data);
|
||||||
$.token = data.access_token
|
$.token = data.access_token
|
||||||
console.log(`$.token ${$.token}`)
|
//console.log(`$.token ${$.token}`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|||||||
857
jd_big_winner_Mod.js
Normal file
857
jd_big_winner_Mod.js
Normal file
@ -0,0 +1,857 @@
|
|||||||
|
/*
|
||||||
|
cron "40 8,10,12,14 * * *" ZY_big_winner_Mod.js
|
||||||
|
省钱大赢家之翻翻乐分组版本,兼容资产通知查询的变量,标题为 省钱大赢家之翻翻乐#2 省钱大赢家之翻翻乐#3 省钱大赢家之翻翻乐#4 省钱大赢家之翻翻乐
|
||||||
|
*/
|
||||||
|
//详细说明参考 https://github.com/ccwav/QLScript2.
|
||||||
|
const $ = new Env('省钱大赢家之翻翻乐');
|
||||||
|
const notify = $.isNode() ? require('./sendNotify') : '';
|
||||||
|
//Node.js用户请在jdCookie.js处填写京东ck;
|
||||||
|
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
|
||||||
|
//IOS等用户直接用NobyDa的jd cookie
|
||||||
|
let cookiesArr = [], cookie = '', message = '', linkId = 'WMDf1PTHmh8MYBpD97sieQ', fflLinkId = 'WMDf1PTHmh8MYBpD97sieQ';
|
||||||
|
const money = $.isNode() ? (process.env.BIGWINNER_MONEY ? process.env.BIGWINNER_MONEY * 1 : 0.3) : ($.getdata("BIGWINNER_MONEY") ? $.getdata("BIGWINNER_MONEY") * 1 : 0.3)
|
||||||
|
const JD_API_HOST = 'https://api.m.jd.com/api';
|
||||||
|
if ($.isNode()) {
|
||||||
|
Object.keys(jdCookieNode).forEach((item) => {
|
||||||
|
cookiesArr.push(jdCookieNode[item])
|
||||||
|
})
|
||||||
|
if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false')
|
||||||
|
console.log = () => {};
|
||||||
|
} else {
|
||||||
|
cookiesArr = [
|
||||||
|
$.getdata("CookieJD"),
|
||||||
|
$.getdata("CookieJD2"),
|
||||||
|
...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item);
|
||||||
|
}
|
||||||
|
const len = cookiesArr.length;
|
||||||
|
|
||||||
|
let MessageUserGp2 = "";
|
||||||
|
let MessageUserGp3 = "";
|
||||||
|
let MessageUserGp4 = "";
|
||||||
|
|
||||||
|
let MessageGp2 = "";
|
||||||
|
let MessageGp3 = "";
|
||||||
|
let MessageGp4 = "";
|
||||||
|
let MessageAll = "";
|
||||||
|
|
||||||
|
let userIndex2 = -1;
|
||||||
|
let userIndex3 = -1;
|
||||||
|
let userIndex4 = -1;
|
||||||
|
|
||||||
|
let IndexGp2 = 0;
|
||||||
|
let IndexGp3 = 0;
|
||||||
|
let IndexGp4 = 0;
|
||||||
|
let IndexAll = 0;
|
||||||
|
|
||||||
|
let allMessageGp2 = '';
|
||||||
|
let allMessageGp3 = '';
|
||||||
|
let allMessageGp4 = '';
|
||||||
|
let allMessage = '';
|
||||||
|
|
||||||
|
let ReturnMessage = "";
|
||||||
|
let ReturnMessageTitle = "";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ($.isNode() && process.env.BEANCHANGE_USERGP2) {
|
||||||
|
MessageUserGp2 = process.env.BEANCHANGE_USERGP2 ? process.env.BEANCHANGE_USERGP2.split('&') : [];
|
||||||
|
console.log(`检测到设定了分组推送2`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($.isNode() && process.env.BEANCHANGE_USERGP3) {
|
||||||
|
MessageUserGp3 = process.env.BEANCHANGE_USERGP3 ? process.env.BEANCHANGE_USERGP3.split('&') : [];
|
||||||
|
console.log(`检测到设定了分组推送3`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($.isNode() && process.env.BEANCHANGE_USERGP4) {
|
||||||
|
MessageUserGp4 = process.env.BEANCHANGE_USERGP4 ? process.env.BEANCHANGE_USERGP4.split('&') : [];
|
||||||
|
console.log(`检测到设定了分组推送4`);
|
||||||
|
}
|
||||||
|
|
||||||
|
let strNoRunPin = "";
|
||||||
|
let NoRunIndex3=-1;
|
||||||
|
if ($.isNode() && process.env.BIGNORUNPIN) {
|
||||||
|
strNoRunPin = process.env.BIGNORUNPIN ? process.env.BIGNORUNPIN.split('&') : [];
|
||||||
|
console.log(`检测到账号跳过的设定`);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
let WP_APP_TOKEN_ONE = "";
|
||||||
|
if ($.isNode() && process.env.WP_APP_TOKEN_ONE) {
|
||||||
|
WP_APP_TOKEN_ONE = process.env.WP_APP_TOKEN_ONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
!(async() => {
|
||||||
|
$.redPacketId = []
|
||||||
|
if (!cookiesArr[0]) {
|
||||||
|
$.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', {
|
||||||
|
"open-url": "https://bean.m.jd.com/"
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (let i = 0; i < len; i++) {
|
||||||
|
if (cookiesArr[i]) {
|
||||||
|
cookie = cookiesArr[i];
|
||||||
|
$.pt_pin = (cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]);
|
||||||
|
$.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]);
|
||||||
|
$.index = i + 1;
|
||||||
|
$.isLogin = true;
|
||||||
|
$.nickName = '';
|
||||||
|
|
||||||
|
if (strNoRunPin) {
|
||||||
|
NoRunIndex3 = strNoRunPin.findIndex((item) => item === $.pt_pin);
|
||||||
|
if (NoRunIndex3 != -1) {
|
||||||
|
console.log(`账号跳过:`+$.UserName);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
NoRunIndex3 = strNoRunPin.findIndex((item) => item === $.UserName);
|
||||||
|
if (NoRunIndex3 != -1) {
|
||||||
|
console.log(`账号跳过:`+$.UserName);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (MessageUserGp4) {
|
||||||
|
userIndex4 = MessageUserGp4.findIndex((item) => item === $.pt_pin);
|
||||||
|
}
|
||||||
|
if (MessageUserGp2) {
|
||||||
|
userIndex2 = MessageUserGp2.findIndex((item) => item === $.pt_pin);
|
||||||
|
}
|
||||||
|
if (MessageUserGp3) {
|
||||||
|
userIndex3 = MessageUserGp3.findIndex((item) => item === $.pt_pin);
|
||||||
|
}
|
||||||
|
if (userIndex4 != -1) {
|
||||||
|
IndexGp4 += 1;
|
||||||
|
ReturnMessageTitle = `【账号${IndexGp4}🆔】${$.nickName || $.UserName}\n`;
|
||||||
|
}
|
||||||
|
if (userIndex2 != -1) {
|
||||||
|
IndexGp2 += 1;
|
||||||
|
ReturnMessageTitle = `【账号${IndexGp2}🆔】${$.nickName || $.UserName}\n`;
|
||||||
|
}
|
||||||
|
if (userIndex3 != -1) {
|
||||||
|
IndexGp3 += 1;
|
||||||
|
ReturnMessageTitle = `【账号${IndexGp3}🆔】${$.nickName || $.UserName}\n`;
|
||||||
|
}
|
||||||
|
if (userIndex4 == -1 && userIndex2 == -1 && userIndex3 == -1) {
|
||||||
|
IndexAll += 1;
|
||||||
|
ReturnMessageTitle = `【账号${IndexAll}🆔】${$.nickName || $.UserName}\n`;
|
||||||
|
}
|
||||||
|
|
||||||
|
ReturnMessage = "";
|
||||||
|
|
||||||
|
console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`);
|
||||||
|
await main()
|
||||||
|
if (ReturnMessage) {
|
||||||
|
|
||||||
|
|
||||||
|
if ($.isNode() && WP_APP_TOKEN_ONE) {
|
||||||
|
await notify.sendNotifybyWxPucher(`${$.name}`,`【账号名称】${$.nickName || $.UserName}\n`+`${ReturnMessage}`,`${$.UserName}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
ReturnMessage = ReturnMessageTitle + ReturnMessage;
|
||||||
|
|
||||||
|
if (userIndex4 != -1) {
|
||||||
|
allMessageGp4 += ReturnMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (userIndex2 != -1) {
|
||||||
|
allMessageGp2 += ReturnMessage;
|
||||||
|
}
|
||||||
|
if (userIndex3 != -1) {
|
||||||
|
allMessageGp3 += ReturnMessage;
|
||||||
|
}
|
||||||
|
if (userIndex4 == -1 && userIndex2 == -1 && userIndex3 == -1) {
|
||||||
|
allMessage += ReturnMessage;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($.isNode() && allMessageGp2) {
|
||||||
|
console.log("分组2:" + `\n` + allMessageGp2);
|
||||||
|
await notify.sendNotify(`${$.name}#2`, `${allMessageGp2}`, {
|
||||||
|
url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean`
|
||||||
|
})
|
||||||
|
await $.wait(5000);
|
||||||
|
}
|
||||||
|
if ($.isNode() && allMessageGp3) {
|
||||||
|
console.log("分组3:" + `\n` + allMessageGp3);
|
||||||
|
await notify.sendNotify(`${$.name}#3`, `${allMessageGp3}`, {
|
||||||
|
url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean`
|
||||||
|
})
|
||||||
|
await $.wait(5000);
|
||||||
|
}
|
||||||
|
if ($.isNode() && allMessageGp4) {
|
||||||
|
console.log("分组4:" + `\n` + allMessageGp4);
|
||||||
|
await notify.sendNotify(`${$.name}#4`, `${allMessageGp4}`, {
|
||||||
|
url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean`
|
||||||
|
})
|
||||||
|
await $.wait(5000);
|
||||||
|
}
|
||||||
|
if ($.isNode() && allMessage) {
|
||||||
|
console.log("其他组:" + `\n` + allMessage);
|
||||||
|
await notify.sendNotify(`${$.name}`, `${allMessage}`, {
|
||||||
|
url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean`
|
||||||
|
})
|
||||||
|
await $.wait(5000);
|
||||||
|
}
|
||||||
|
})()
|
||||||
|
.catch((e) => {
|
||||||
|
$.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '')
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
$.done();
|
||||||
|
})
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
try {
|
||||||
|
$.canApCashWithDraw = false;
|
||||||
|
$.changeReward = true;
|
||||||
|
$.canOpenRed = true;
|
||||||
|
await gambleHomePage();
|
||||||
|
if (!$.time) {
|
||||||
|
console.log(`开始进行翻翻乐拿红包\n`)
|
||||||
|
await gambleOpenReward(); //打开红包
|
||||||
|
if ($.canOpenRed) {
|
||||||
|
while (!$.canApCashWithDraw && $.changeReward) {
|
||||||
|
await openRedReward();
|
||||||
|
await $.wait(1000);
|
||||||
|
}
|
||||||
|
if ($.canApCashWithDraw) {
|
||||||
|
//提现
|
||||||
|
await openRedReward('gambleObtainReward', $.rewardData.rewardType);
|
||||||
|
await apCashWithDraw($.rewardData.id, $.rewardData.poolBaseId, $.rewardData.prizeGroupId, $.rewardData.prizeBaseId, $.rewardData.prizeType);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
$.logErr(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//查询剩余多长时间可进行翻翻乐
|
||||||
|
function gambleHomePage() {
|
||||||
|
const headers = {
|
||||||
|
'Host': 'api.m.jd.com',
|
||||||
|
'Origin': 'https://openredpacket-jdlite.jd.com',
|
||||||
|
'Accept': 'application/json, text/plain, */*',
|
||||||
|
'User-Agent': 'jdltapp;iPhone;3.3.2;14.4.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||||
|
'Referer': `https://618redpacket.jd.com/withdraw?activityId=${linkId}&channel=wjicon&lng=&lat=&sid=&un_area=`,
|
||||||
|
'Accept-Language': 'zh-cn',
|
||||||
|
'Cookie': cookie
|
||||||
|
}
|
||||||
|
const body = {
|
||||||
|
'linkId': fflLinkId
|
||||||
|
};
|
||||||
|
const options = {
|
||||||
|
url: `https://api.m.jd.com/?functionId=gambleHomePage&body=${encodeURIComponent(JSON.stringify(body))}&appid=activities_platform&clientVersion=3.5.0`,
|
||||||
|
headers,
|
||||||
|
}
|
||||||
|
return new Promise(resolve => {
|
||||||
|
$.get(options, (err, resp, data) => {
|
||||||
|
try {
|
||||||
|
if (err) {
|
||||||
|
console.log(`${JSON.stringify(err)}`)
|
||||||
|
console.log(`${$.name} API请求失败,请检查网路重试`)
|
||||||
|
} else {
|
||||||
|
if (data) {
|
||||||
|
data = JSON.parse(data);
|
||||||
|
if (data['code'] === 0) {
|
||||||
|
if (data.data.leftTime === 0) {
|
||||||
|
$.time = data.data.leftTime;
|
||||||
|
} else {
|
||||||
|
$.time = (data.data.leftTime / (60 * 1000)).toFixed(2);
|
||||||
|
}
|
||||||
|
console.log(`\n查询下次翻翻乐剩余时间成功:\n京东账号【${$.UserName}】距开始剩 ${$.time} 分钟`);
|
||||||
|
} else {
|
||||||
|
console.log(`查询下次翻翻乐剩余时间失败:${JSON.stringify(data)}\n`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
$.logErr(e, resp)
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
resolve()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//打开翻翻乐红包
|
||||||
|
function gambleOpenReward() {
|
||||||
|
const headers = {
|
||||||
|
'Host': 'api.m.jd.com',
|
||||||
|
'Origin': 'https://openredpacket-jdlite.jd.com',
|
||||||
|
'Accept': 'application/json, text/plain, */*',
|
||||||
|
'User-Agent': 'jdltapp;iPhone;3.3.2;14.4.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||||
|
'Referer': `https://618redpacket.jd.com/withdraw?activityId=${linkId}&channel=wjicon&lng=&lat=&sid=&un_area=`,
|
||||||
|
'Accept-Language': 'zh-cn',
|
||||||
|
"Content-Type": "application/x-www-form-urlencoded",
|
||||||
|
'Cookie': cookie
|
||||||
|
}
|
||||||
|
const body = {
|
||||||
|
'linkId': fflLinkId
|
||||||
|
};
|
||||||
|
const options = {
|
||||||
|
url: `https://api.m.jd.com/`,
|
||||||
|
headers,
|
||||||
|
body: `functionId=gambleOpenReward&body=${encodeURIComponent(JSON.stringify(body))}&t=${+new Date()}&appid=activities_platform&clientVersion=3.5.0`
|
||||||
|
}
|
||||||
|
return new Promise(resolve => {
|
||||||
|
$.post(options, (err, resp, data) => {
|
||||||
|
try {
|
||||||
|
if (err) {
|
||||||
|
console.log(`${JSON.stringify(err)}`)
|
||||||
|
console.log(`${$.name} API请求失败,请检查网路重试`)
|
||||||
|
} else {
|
||||||
|
if (data) {
|
||||||
|
data = JSON.parse(data);
|
||||||
|
$.rewardData = data.data;
|
||||||
|
if (data['code'] === 0) {
|
||||||
|
console.log(`翻翻乐打开红包 成功,获得:${data.data.rewardValue}元红包\n`);
|
||||||
|
} else {
|
||||||
|
console.log(`翻翻乐打开红包 失败:${JSON.stringify(data)}\n`);
|
||||||
|
if (data.code === 20007) {
|
||||||
|
$.canOpenRed = false;
|
||||||
|
console.log(`翻翻乐打开红包 失败,今日活动参与次数已达上限`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
$.logErr(e, resp)
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
resolve()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//翻倍红包
|
||||||
|
function openRedReward(functionId = 'gambleChangeReward', type) {
|
||||||
|
const headers = {
|
||||||
|
'Host': 'api.m.jd.com',
|
||||||
|
'Origin': 'https://openredpacket-jdlite.jd.com',
|
||||||
|
'Accept': 'application/json, text/plain, */*',
|
||||||
|
'User-Agent': 'jdltapp;iPhone;3.3.2;14.4.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||||
|
'Referer': `https://618redpacket.jd.com/withdraw?activityId=${linkId}&channel=wjicon&lng=&lat=&sid=&un_area=`,
|
||||||
|
'Accept-Language': 'zh-cn',
|
||||||
|
"Content-Type": "application/x-www-form-urlencoded",
|
||||||
|
'Cookie': cookie
|
||||||
|
}
|
||||||
|
const body = {
|
||||||
|
'linkId': fflLinkId
|
||||||
|
};
|
||||||
|
if (type)
|
||||||
|
body['rewardType'] = type;
|
||||||
|
const options = {
|
||||||
|
url: `https://api.m.jd.com/`,
|
||||||
|
headers,
|
||||||
|
body: `functionId=${functionId}&body=${encodeURIComponent(JSON.stringify(body))}&t=${+new Date()}&appid=activities_platform&clientVersion=3.5.0`
|
||||||
|
}
|
||||||
|
return new Promise(resolve => {
|
||||||
|
$.post(options, (err, resp, data) => {
|
||||||
|
try {
|
||||||
|
if (err) {
|
||||||
|
console.log(`${JSON.stringify(err)}`)
|
||||||
|
console.log(`${$.name} API请求失败,请检查网路重试`)
|
||||||
|
$.changeReward = false;
|
||||||
|
} else {
|
||||||
|
if (data) {
|
||||||
|
console.log(`翻翻乐结果:${data}\n`);
|
||||||
|
data = JSON.parse(data);
|
||||||
|
if (data['code'] === 0) {
|
||||||
|
$.rewardData = data.data;
|
||||||
|
if (data.data.rewardState === 1) {
|
||||||
|
if (data.data.rewardValue >= money) {
|
||||||
|
//已翻倍到0.3元,可以提现了
|
||||||
|
$.canApCashWithDraw = true;
|
||||||
|
$.changeReward = false;
|
||||||
|
// message += `${data.data.rewardValue}元现金\n`
|
||||||
|
}
|
||||||
|
if (data.data.rewardType === 1) {
|
||||||
|
console.log(`翻翻乐 第${data.data.changeTimes}次翻倍 成功,获得:${data.data.rewardValue}元红包\n`);
|
||||||
|
} else if (data.data.rewardType === 2) {
|
||||||
|
console.log(`翻翻乐 第${data.data.changeTimes}次翻倍 成功,获得:${data.data.rewardValue}元现金\n`);
|
||||||
|
// $.canApCashWithDraw = true;
|
||||||
|
} else {
|
||||||
|
console.log(`翻翻乐 第${data.data.changeTimes}次翻倍 成功,获得:${JSON.stringify(data)}\n`);
|
||||||
|
}
|
||||||
|
} else if (data.data.rewardState === 3) {
|
||||||
|
console.log(`翻翻乐 第${data.data.changeTimes}次翻倍 失败,奖品溜走了/(ㄒoㄒ)/~~\n`);
|
||||||
|
$.changeReward = false;
|
||||||
|
} else {
|
||||||
|
if (type) {
|
||||||
|
console.log(`翻翻乐领取成功:${data.data.amount}现金\n`)
|
||||||
|
ReturnMessage += `${new Date().getHours()}点:${data.data.amount}现金\n`;
|
||||||
|
} else {
|
||||||
|
console.log(`翻翻乐 翻倍 成功,获得:${JSON.stringify(data)}\n`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$.canApCashWithDraw = true;
|
||||||
|
$.changeReward = false;
|
||||||
|
console.log(`翻翻乐 翻倍 失败:${JSON.stringify(data)}\n`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
$.logErr(e, resp)
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
resolve()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//翻翻乐提现
|
||||||
|
function apCashWithDraw(id, poolBaseId, prizeGroupId, prizeBaseId, prizeType) {
|
||||||
|
const headers = {
|
||||||
|
'Host': 'api.m.jd.com',
|
||||||
|
'Origin': 'https://openredpacket-jdlite.jd.com',
|
||||||
|
'Accept': 'application/json, text/plain, */*',
|
||||||
|
'User-Agent': 'jdltapp;iPhone;3.3.2;14.4.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||||
|
'Referer': `https://618redpacket.jd.com/withdraw?activityId=${linkId}&channel=wjicon&lng=&lat=&sid=&un_area=`,
|
||||||
|
'Accept-Language': 'zh-cn',
|
||||||
|
"Content-Type": "application/x-www-form-urlencoded",
|
||||||
|
'Cookie': cookie
|
||||||
|
}
|
||||||
|
const body = {
|
||||||
|
"businessSource": "GAMBLE",
|
||||||
|
"base": {
|
||||||
|
id,
|
||||||
|
"business": "redEnvelopeDouble",
|
||||||
|
poolBaseId,
|
||||||
|
prizeGroupId,
|
||||||
|
prizeBaseId,
|
||||||
|
prizeType
|
||||||
|
},
|
||||||
|
"linkId": fflLinkId
|
||||||
|
};
|
||||||
|
const options = {
|
||||||
|
url: `https://api.m.jd.com/`,
|
||||||
|
headers,
|
||||||
|
body: `functionId=apCashWithDraw&body=${encodeURIComponent(JSON.stringify(body))}&t=${+new Date()}&appid=activities_platform&clientVersion=3.5.0`
|
||||||
|
}
|
||||||
|
return new Promise(resolve => {
|
||||||
|
$.post(options, (err, resp, data) => {
|
||||||
|
try {
|
||||||
|
if (err) {
|
||||||
|
console.log(`${JSON.stringify(err)}`)
|
||||||
|
console.log(`${$.name} API请求失败,请检查网路重试`)
|
||||||
|
} else {
|
||||||
|
if (data) {
|
||||||
|
data = JSON.parse(data);
|
||||||
|
if (data['code'] === 0) {
|
||||||
|
if (data['data']['status'] === '310') {
|
||||||
|
console.log(`翻翻乐提现 成功🎉,详情:${JSON.stringify(data)}\n`);
|
||||||
|
ReturnMessage += `提现至微信钱包成功🎉\n\n`;
|
||||||
|
} else {
|
||||||
|
console.log(`翻翻乐提现 失败,详情:${JSON.stringify(data)}\n`);
|
||||||
|
ReturnMessage += `提现至微信钱包失败\n详情:${JSON.stringify(data)}\n`;
|
||||||
|
ReturnMessage +="温馨提示: 如果是没有绑定,请至微信搜索京东小程序登录即可.\n"
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.log(`翻翻乐提现 失败:${JSON.stringify(data)}\n`);
|
||||||
|
ReturnMessage += `提现至微信钱包失败\n详情:${JSON.stringify(data)}\n\n`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
$.logErr(e, resp)
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
resolve()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// prettier-ignore
|
||||||
|
function Env(t, e) {
|
||||||
|
class s {
|
||||||
|
constructor(t) {
|
||||||
|
this.env = t
|
||||||
|
}
|
||||||
|
send(t, e = "GET") {
|
||||||
|
t = "string" == typeof t ? {
|
||||||
|
url: t
|
||||||
|
}
|
||||||
|
: t;
|
||||||
|
let s = this.get;
|
||||||
|
return "POST" === e && (s = this.post),
|
||||||
|
new Promise((e, i) => {
|
||||||
|
s.call(this, t, (t, s, r) => {
|
||||||
|
t ? i(t) : e(s)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
get(t) {
|
||||||
|
return this.send.call(this.env, t)
|
||||||
|
}
|
||||||
|
post(t) {
|
||||||
|
return this.send.call(this.env, t, "POST")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return new class {
|
||||||
|
constructor(t, e) {
|
||||||
|
this.name = t,
|
||||||
|
this.http = new s(this),
|
||||||
|
this.data = null,
|
||||||
|
this.dataFile = "box.dat",
|
||||||
|
this.logs = [],
|
||||||
|
this.isMute = !1,
|
||||||
|
this.isNeedRewrite = !1,
|
||||||
|
this.logSeparator = "\n",
|
||||||
|
this.startTime = (new Date).getTime(),
|
||||||
|
Object.assign(this, e),
|
||||||
|
this.log("", `\ud83d\udd14${this.name}, \u5f00\u59cb!`)
|
||||||
|
}
|
||||||
|
isNode() {
|
||||||
|
return "undefined" != typeof module && !!module.exports
|
||||||
|
}
|
||||||
|
isQuanX() {
|
||||||
|
return "undefined" != typeof $task
|
||||||
|
}
|
||||||
|
isSurge() {
|
||||||
|
return "undefined" != typeof $httpClient && "undefined" == typeof $loon
|
||||||
|
}
|
||||||
|
isLoon() {
|
||||||
|
return "undefined" != typeof $loon
|
||||||
|
}
|
||||||
|
toObj(t, e = null) {
|
||||||
|
try {
|
||||||
|
return JSON.parse(t)
|
||||||
|
} catch {
|
||||||
|
return e
|
||||||
|
}
|
||||||
|
}
|
||||||
|
toStr(t, e = null) {
|
||||||
|
try {
|
||||||
|
return JSON.stringify(t)
|
||||||
|
} catch {
|
||||||
|
return e
|
||||||
|
}
|
||||||
|
}
|
||||||
|
getjson(t, e) {
|
||||||
|
let s = e;
|
||||||
|
const i = this.getdata(t);
|
||||||
|
if (i)
|
||||||
|
try {
|
||||||
|
s = JSON.parse(this.getdata(t))
|
||||||
|
} catch {}
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
setjson(t, e) {
|
||||||
|
try {
|
||||||
|
return this.setdata(JSON.stringify(t), e)
|
||||||
|
} catch {
|
||||||
|
return !1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
getScript(t) {
|
||||||
|
return new Promise(e => {
|
||||||
|
this.get({
|
||||||
|
url: t
|
||||||
|
}, (t, s, i) => e(i))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
runScript(t, e) {
|
||||||
|
return new Promise(s => {
|
||||||
|
let i = this.getdata("@chavy_boxjs_userCfgs.httpapi");
|
||||||
|
i = i ? i.replace(/\n/g, "").trim() : i;
|
||||||
|
let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");
|
||||||
|
r = r ? 1 * r : 20,
|
||||||
|
r = e && e.timeout ? e.timeout : r;
|
||||||
|
const[o, h] = i.split("@"),
|
||||||
|
a = {
|
||||||
|
url: `http://${h}/v1/scripting/evaluate`,
|
||||||
|
body: {
|
||||||
|
script_text: t,
|
||||||
|
mock_type: "cron",
|
||||||
|
timeout: r
|
||||||
|
},
|
||||||
|
headers: {
|
||||||
|
"X-Key": o,
|
||||||
|
Accept: "*/*"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
this.post(a, (t, e, i) => s(i))
|
||||||
|
}).catch(t => this.logErr(t))
|
||||||
|
}
|
||||||
|
loaddata() {
|
||||||
|
if (!this.isNode())
|
||||||
|
return {}; {
|
||||||
|
this.fs = this.fs ? this.fs : require("fs"),
|
||||||
|
this.path = this.path ? this.path : require("path");
|
||||||
|
const t = this.path.resolve(this.dataFile),
|
||||||
|
e = this.path.resolve(process.cwd(), this.dataFile),
|
||||||
|
s = this.fs.existsSync(t),
|
||||||
|
i = !s && this.fs.existsSync(e);
|
||||||
|
if (!s && !i)
|
||||||
|
return {}; {
|
||||||
|
const i = s ? t : e;
|
||||||
|
try {
|
||||||
|
return JSON.parse(this.fs.readFileSync(i))
|
||||||
|
} catch (t) {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
writedata() {
|
||||||
|
if (this.isNode()) {
|
||||||
|
this.fs = this.fs ? this.fs : require("fs"),
|
||||||
|
this.path = this.path ? this.path : require("path");
|
||||||
|
const t = this.path.resolve(this.dataFile),
|
||||||
|
e = this.path.resolve(process.cwd(), this.dataFile),
|
||||||
|
s = this.fs.existsSync(t),
|
||||||
|
i = !s && this.fs.existsSync(e),
|
||||||
|
r = JSON.stringify(this.data);
|
||||||
|
s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lodash_get(t, e, s) {
|
||||||
|
const i = e.replace(/\[(\d+)\]/g, ".$1").split(".");
|
||||||
|
let r = t;
|
||||||
|
for (const t of i)
|
||||||
|
if (r = Object(r)[t], void 0 === r)
|
||||||
|
return s;
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
lodash_set(t, e, s) {
|
||||||
|
return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t)
|
||||||
|
}
|
||||||
|
getdata(t) {
|
||||||
|
let e = this.getval(t);
|
||||||
|
if (/^@/.test(t)) {
|
||||||
|
const[, s, i] = /^@(.*?)\.(.*?)$/.exec(t),
|
||||||
|
r = s ? this.getval(s) : "";
|
||||||
|
if (r)
|
||||||
|
try {
|
||||||
|
const t = JSON.parse(r);
|
||||||
|
e = t ? this.lodash_get(t, i, "") : e
|
||||||
|
} catch (t) {
|
||||||
|
e = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return e
|
||||||
|
}
|
||||||
|
setdata(t, e) {
|
||||||
|
let s = !1;
|
||||||
|
if (/^@/.test(e)) {
|
||||||
|
const[, i, r] = /^@(.*?)\.(.*?)$/.exec(e),
|
||||||
|
o = this.getval(i),
|
||||||
|
h = i ? "null" === o ? null : o || "{}" : "{}";
|
||||||
|
try {
|
||||||
|
const e = JSON.parse(h);
|
||||||
|
this.lodash_set(e, r, t),
|
||||||
|
s = this.setval(JSON.stringify(e), i)
|
||||||
|
} catch (e) {
|
||||||
|
const o = {};
|
||||||
|
this.lodash_set(o, r, t),
|
||||||
|
s = this.setval(JSON.stringify(o), i)
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
s = this.setval(t, e);
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
getval(t) {
|
||||||
|
return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null
|
||||||
|
}
|
||||||
|
setval(t, e) {
|
||||||
|
return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null
|
||||||
|
}
|
||||||
|
initGotEnv(t) {
|
||||||
|
this.got = this.got ? this.got : require("got"),
|
||||||
|
this.cktough = this.cktough ? this.cktough : require("tough-cookie"),
|
||||||
|
this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar,
|
||||||
|
t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar))
|
||||||
|
}
|
||||||
|
get(t, e = (() => {})) {
|
||||||
|
t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]),
|
||||||
|
this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, {
|
||||||
|
"X-Surge-Skip-Scripting": !1
|
||||||
|
})), $httpClient.get(t, (t, s, i) => {
|
||||||
|
!t && s && (s.body = i, s.statusCode = s.status),
|
||||||
|
e(t, s, i)
|
||||||
|
})) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, {
|
||||||
|
hints: !1
|
||||||
|
})), $task.fetch(t).then(t => {
|
||||||
|
const {
|
||||||
|
statusCode: s,
|
||||||
|
statusCode: i,
|
||||||
|
headers: r,
|
||||||
|
body: o
|
||||||
|
} = t;
|
||||||
|
e(null, {
|
||||||
|
status: s,
|
||||||
|
statusCode: i,
|
||||||
|
headers: r,
|
||||||
|
body: o
|
||||||
|
}, o)
|
||||||
|
}, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => {
|
||||||
|
try {
|
||||||
|
if (t.headers["set-cookie"]) {
|
||||||
|
const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();
|
||||||
|
this.ckjar.setCookieSync(s, null),
|
||||||
|
e.cookieJar = this.ckjar
|
||||||
|
}
|
||||||
|
} catch (t) {
|
||||||
|
this.logErr(t)
|
||||||
|
}
|
||||||
|
}).then(t => {
|
||||||
|
const {
|
||||||
|
statusCode: s,
|
||||||
|
statusCode: i,
|
||||||
|
headers: r,
|
||||||
|
body: o
|
||||||
|
} = t;
|
||||||
|
e(null, {
|
||||||
|
status: s,
|
||||||
|
statusCode: i,
|
||||||
|
headers: r,
|
||||||
|
body: o
|
||||||
|
}, o)
|
||||||
|
}, t => {
|
||||||
|
const {
|
||||||
|
message: s,
|
||||||
|
response: i
|
||||||
|
} = t;
|
||||||
|
e(s, i, i && i.body)
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
post(t, e = (() => {})) {
|
||||||
|
if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon())
|
||||||
|
this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, {
|
||||||
|
"X-Surge-Skip-Scripting": !1
|
||||||
|
})), $httpClient.post(t, (t, s, i) => {
|
||||||
|
!t && s && (s.body = i, s.statusCode = s.status),
|
||||||
|
e(t, s, i)
|
||||||
|
});
|
||||||
|
else if (this.isQuanX())
|
||||||
|
t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, {
|
||||||
|
hints: !1
|
||||||
|
})), $task.fetch(t).then(t => {
|
||||||
|
const {
|
||||||
|
statusCode: s,
|
||||||
|
statusCode: i,
|
||||||
|
headers: r,
|
||||||
|
body: o
|
||||||
|
} = t;
|
||||||
|
e(null, {
|
||||||
|
status: s,
|
||||||
|
statusCode: i,
|
||||||
|
headers: r,
|
||||||
|
body: o
|
||||||
|
}, o)
|
||||||
|
}, t => e(t));
|
||||||
|
else if (this.isNode()) {
|
||||||
|
this.initGotEnv(t);
|
||||||
|
const {
|
||||||
|
url: s,
|
||||||
|
...i
|
||||||
|
} = t;
|
||||||
|
this.got.post(s, i).then(t => {
|
||||||
|
const {
|
||||||
|
statusCode: s,
|
||||||
|
statusCode: i,
|
||||||
|
headers: r,
|
||||||
|
body: o
|
||||||
|
} = t;
|
||||||
|
e(null, {
|
||||||
|
status: s,
|
||||||
|
statusCode: i,
|
||||||
|
headers: r,
|
||||||
|
body: o
|
||||||
|
}, o)
|
||||||
|
}, t => {
|
||||||
|
const {
|
||||||
|
message: s,
|
||||||
|
response: i
|
||||||
|
} = t;
|
||||||
|
e(s, i, i && i.body)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
time(t) {
|
||||||
|
let e = {
|
||||||
|
"M+": (new Date).getMonth() + 1,
|
||||||
|
"d+": (new Date).getDate(),
|
||||||
|
"H+": (new Date).getHours(),
|
||||||
|
"m+": (new Date).getMinutes(),
|
||||||
|
"s+": (new Date).getSeconds(),
|
||||||
|
"q+": Math.floor(((new Date).getMonth() + 3) / 3),
|
||||||
|
S: (new Date).getMilliseconds()
|
||||||
|
};
|
||||||
|
/(y+)/.test(t) && (t = t.replace(RegExp.$1, ((new Date).getFullYear() + "").substr(4 - RegExp.$1.length)));
|
||||||
|
for (let s in e)
|
||||||
|
new RegExp("(" + s + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).length)));
|
||||||
|
return t
|
||||||
|
}
|
||||||
|
msg(e = t, s = "", i = "", r) {
|
||||||
|
const o = t => {
|
||||||
|
if (!t)
|
||||||
|
return t;
|
||||||
|
if ("string" == typeof t)
|
||||||
|
return this.isLoon() ? t : this.isQuanX() ? {
|
||||||
|
"open-url": t
|
||||||
|
}
|
||||||
|
: this.isSurge() ? {
|
||||||
|
url: t
|
||||||
|
}
|
||||||
|
: void 0;
|
||||||
|
if ("object" == typeof t) {
|
||||||
|
if (this.isLoon()) {
|
||||||
|
let e = t.openUrl || t.url || t["open-url"],
|
||||||
|
s = t.mediaUrl || t["media-url"];
|
||||||
|
return {
|
||||||
|
openUrl: e,
|
||||||
|
mediaUrl: s
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (this.isQuanX()) {
|
||||||
|
let e = t["open-url"] || t.url || t.openUrl,
|
||||||
|
s = t["media-url"] || t.mediaUrl;
|
||||||
|
return {
|
||||||
|
"open-url": e,
|
||||||
|
"media-url": s
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (this.isSurge()) {
|
||||||
|
let e = t.url || t.openUrl || t["open-url"];
|
||||||
|
return {
|
||||||
|
url: e
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r)));
|
||||||
|
let h = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];
|
||||||
|
h.push(e),
|
||||||
|
s && h.push(s),
|
||||||
|
i && h.push(i),
|
||||||
|
console.log(h.join("\n")),
|
||||||
|
this.logs = this.logs.concat(h)
|
||||||
|
}
|
||||||
|
log(...t) {
|
||||||
|
t.length > 0 && (this.logs = [...this.logs, ...t]),
|
||||||
|
console.log(t.join(this.logSeparator))
|
||||||
|
}
|
||||||
|
logErr(t, e) {
|
||||||
|
const s = !this.isSurge() && !this.isQuanX() && !this.isLoon();
|
||||||
|
s ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t)
|
||||||
|
}
|
||||||
|
wait(t) {
|
||||||
|
return new Promise(e => setTimeout(e, t))
|
||||||
|
}
|
||||||
|
done(t = {}) {
|
||||||
|
const e = (new Date).getTime(),
|
||||||
|
s = (e - this.startTime) / 1e3;
|
||||||
|
this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),
|
||||||
|
this.log(),
|
||||||
|
(this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
(t, e)
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
526
jd_blueCoin.js
526
jd_blueCoin.js
File diff suppressed because one or more lines are too long
180
jd_btdraw.py
180
jd_btdraw.py
@ -1,180 +0,0 @@
|
|||||||
# -*- coding:utf-8 -*-
|
|
||||||
#pip install PyExecJS
|
|
||||||
|
|
||||||
|
|
||||||
"""
|
|
||||||
cron: 23 10 * * *
|
|
||||||
new Env('京东金融天天试手气');
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
import requests
|
|
||||||
import json
|
|
||||||
import time
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
import random
|
|
||||||
import string
|
|
||||||
import urllib
|
|
||||||
|
|
||||||
try:
|
|
||||||
import execjs
|
|
||||||
except:
|
|
||||||
print('缺少依赖文件PyExecJS,请先去Python3安装PyExecJS后再执行')
|
|
||||||
sys.exit(0)
|
|
||||||
|
|
||||||
def printf(text):
|
|
||||||
print(text)
|
|
||||||
sys.stdout.flush()
|
|
||||||
|
|
||||||
def load_send():
|
|
||||||
global send
|
|
||||||
cur_path = os.path.abspath(os.path.dirname(__file__))
|
|
||||||
sys.path.append(cur_path)
|
|
||||||
if os.path.exists(cur_path + "/sendNotify.py"):
|
|
||||||
try:
|
|
||||||
from sendNotify import send
|
|
||||||
except:
|
|
||||||
send=False
|
|
||||||
printf("加载通知服务失败~")
|
|
||||||
else:
|
|
||||||
send=False
|
|
||||||
printf("加载通知服务失败~")
|
|
||||||
load_send()
|
|
||||||
|
|
||||||
def get_remarkinfo():
|
|
||||||
url='http://127.0.0.1:5600/api/envs'
|
|
||||||
try:
|
|
||||||
with open('/ql/config/auth.json', 'r') as f:
|
|
||||||
token=json.loads(f.read())['token']
|
|
||||||
headers={
|
|
||||||
'Accept':'application/json',
|
|
||||||
'authorization':'Bearer '+token,
|
|
||||||
}
|
|
||||||
response=requests.get(url=url,headers=headers)
|
|
||||||
|
|
||||||
for i in range(len(json.loads(response.text)['data'])):
|
|
||||||
if json.loads(response.text)['data'][i]['name']=='JD_COOKIE':
|
|
||||||
try:
|
|
||||||
if json.loads(response.text)['data'][i]['remarks'].find('@@')==-1:
|
|
||||||
remarkinfos[json.loads(response.text)['data'][i]['value'].split(';')[1].replace('pt_pin=','')]=json.loads(response.text)['data'][i]['remarks'].replace('remark=','')
|
|
||||||
else:
|
|
||||||
remarkinfos[json.loads(response.text)['data'][i]['value'].split(';')[1].replace('pt_pin=','')]=json.loads(response.text)['data'][i]['remarks'].split("@@")[0].replace('remark=','').replace(';','')
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
except:
|
|
||||||
printf('读取auth.json文件出错,跳过获取备注')
|
|
||||||
|
|
||||||
def randomuserAgent():
|
|
||||||
global uuid,addressid,iosVer,iosV,clientVersion,iPhone,area,ADID,lng,lat
|
|
||||||
uuid=''.join(random.sample(['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','a','b','c','z'], 40))
|
|
||||||
addressid = ''.join(random.sample('1234567898647', 10))
|
|
||||||
iosVer = ''.join(random.sample(["15.1.1","14.5.1", "14.4", "14.3", "14.2", "14.1", "14.0.1"], 1))
|
|
||||||
iosV = iosVer.replace('.', '_')
|
|
||||||
clientVersion=''.join(random.sample(["10.3.0", "10.2.7", "10.2.4"], 1))
|
|
||||||
iPhone = ''.join(random.sample(["8", "9", "10", "11", "12", "13"], 1))
|
|
||||||
area=''.join(random.sample('0123456789', 2)) + '_' + ''.join(random.sample('0123456789', 4)) + '_' + ''.join(random.sample('0123456789', 5)) + '_' + ''.join(random.sample('0123456789', 4))
|
|
||||||
ADID = ''.join(random.sample('0987654321ABCDEF', 8)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 12))
|
|
||||||
lng='119.31991256596'+str(random.randint(100,999))
|
|
||||||
lat='26.1187118976'+str(random.randint(100,999))
|
|
||||||
UserAgent=''
|
|
||||||
if not UserAgent:
|
|
||||||
return f'jdapp;iPhone;10.0.4;{iosVer};{uuid};network/wifi;ADID/{ADID};model/iPhone{iPhone},1;addressid/{addressid};appBuild/167707;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS {iosV} like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/null;supportJDSHWK/1'
|
|
||||||
else:
|
|
||||||
return UserAgent
|
|
||||||
|
|
||||||
def JDSignValidator(url):
|
|
||||||
with open('JDSignValidator.js', 'r', encoding='utf-8') as f:
|
|
||||||
jstext = f.read()
|
|
||||||
js = execjs.compile(jstext)
|
|
||||||
result = js.call('getBody', url)
|
|
||||||
fp=result['fp']
|
|
||||||
a=result['a']
|
|
||||||
d=result['d']
|
|
||||||
return fp,a,d
|
|
||||||
|
|
||||||
|
|
||||||
def geteid(a,d):
|
|
||||||
url=f'https://gia.jd.com/fcf.html?a={a}'
|
|
||||||
data=f'&d={d}'
|
|
||||||
headers={
|
|
||||||
'Host':'gia.jd.com',
|
|
||||||
'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8',
|
|
||||||
'Origin':'https://jrmkt.jd.com',
|
|
||||||
'Accept-Encoding':'gzip, deflate, br',
|
|
||||||
'Connection':'keep-alive',
|
|
||||||
'Accept':'*/*',
|
|
||||||
'User-Agent':UserAgent,
|
|
||||||
'Referer':'https://jrmkt.jd.com/',
|
|
||||||
'Content-Length':'376',
|
|
||||||
'Accept-Language':'zh-CN,zh-Hans;q=0.9',
|
|
||||||
}
|
|
||||||
response=requests.post(url=url,headers=headers,data=data)
|
|
||||||
return response.text
|
|
||||||
|
|
||||||
def draw(activityid,eid,fp):
|
|
||||||
global sendNotifyflag
|
|
||||||
global prizeAward
|
|
||||||
sendNotifyflag=False
|
|
||||||
prizeAward=0
|
|
||||||
url='https://jrmkt.jd.com/activity/newPageTake/takePrize'
|
|
||||||
data=f'activityId={activityid}&eid={eid}&fp={fp}'
|
|
||||||
headers={
|
|
||||||
'Host':'jrmkt.jd.com',
|
|
||||||
'Accept':'application/json, text/javascript, */*; q=0.01',
|
|
||||||
'X-Requested-With':'XMLHttpRequest',
|
|
||||||
'Accept-Language':'zh-CN,zh-Hans;q=0.9',
|
|
||||||
'Accept-Encoding':'gzip, deflate, br',
|
|
||||||
'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',
|
|
||||||
'Origin':'https://jrmkt.jd.com',
|
|
||||||
'User-Agent':UserAgent,
|
|
||||||
'Connection':'keep-alive',
|
|
||||||
'Referer':'https://jrmkt.jd.com/ptp/wl/vouchers.html?activityId=Q029794F612c2E2O1D2a0N161v0Z2i2s9nJ&jrcontainer=h5&jrlogin=true&jrcloseweb=false',
|
|
||||||
'Content-Length':str(len(data)),
|
|
||||||
'Cookie':ck
|
|
||||||
}
|
|
||||||
response=requests.post(url=url,headers=headers,data=data)
|
|
||||||
try:
|
|
||||||
if json.loads(response.text)['prizeModels'][0]['prizeAward'].find('元')!=-1:
|
|
||||||
printf('获得'+json.loads(response.text)['prizeModels'][0]['useLimit']+'的'+json.loads(response.text)['prizeModels'][0]['prizeName']+'\n金额:'+json.loads(response.text)['prizeModels'][0]['prizeAward']+'\n有效期:'+json.loads(response.text)['prizeModels'][0]['validTime']+'\n\n')
|
|
||||||
if int((json.loads(response.text)['prizeModels'][0]['prizeAward']).replace('.00元',''))>=5:
|
|
||||||
prizeAward=json.loads(response.text)['prizeModels'][0]['prizeAward']
|
|
||||||
sendNotifyflag=True
|
|
||||||
if json.loads(response.text)['prizeModels'][0]['prizeAward'].find('期')!=-1:
|
|
||||||
printf(response.text)
|
|
||||||
send('抽到白条分期券','去看日志')
|
|
||||||
except:
|
|
||||||
printf('出错啦,出错原因为:'+json.loads(response.text)['failDesc']+'\n\n')
|
|
||||||
|
|
||||||
time.sleep(5)
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
printf('游戏入口:京东金融-白条-天天试手气\n')
|
|
||||||
remarkinfos={}
|
|
||||||
get_remarkinfo()
|
|
||||||
try:
|
|
||||||
cks = os.environ["JD_COOKIE"].split("&")
|
|
||||||
except:
|
|
||||||
f = open("/jd/config/config.sh", "r", encoding='utf-8')
|
|
||||||
cks = re.findall(r'Cookie[0-9]*="(pt_key=.*?;pt_pin=.*?;)"', f.read())
|
|
||||||
f.close()
|
|
||||||
for ck in cks:
|
|
||||||
ptpin = re.findall(r"pt_pin=(.*?);", ck)[0]
|
|
||||||
try:
|
|
||||||
if remarkinfos[ptpin]!='':
|
|
||||||
printf("--账号:" + remarkinfos[ptpin] + "--")
|
|
||||||
username=remarkinfos[ptpin]
|
|
||||||
else:
|
|
||||||
printf("--无备注账号:" + urllib.parse.unquote(ptpin) + "--")
|
|
||||||
username=urllib.parse.unquote(ptpin)
|
|
||||||
except:
|
|
||||||
printf("--账号:" + urllib.parse.unquote(ptpin) + "--")
|
|
||||||
username=urllib.parse.unquote(ptpin)
|
|
||||||
UserAgent=randomuserAgent()
|
|
||||||
info=JDSignValidator('https://prodev.m.jd.com/mall/active/498THTs5KGNqK5nEaingGsKEi6Ao/index.html')
|
|
||||||
eid=json.loads(geteid(info[1],info[2]).split('_*')[1])['eid']
|
|
||||||
fp=info[0]
|
|
||||||
draw('Q72966994128142102X259KS',eid,fp)
|
|
||||||
if sendNotifyflag:
|
|
||||||
send('京东白条抽奖通知',username+'抽到'+str(prizeAward)+'的优惠券了,速去京东金融-白条-天天试手气查看')
|
|
||||||
8
jd_captian_anjia.js
Executable file
8
jd_captian_anjia.js
Executable file
File diff suppressed because one or more lines are too long
21
jd_card_force.js
Normal file
21
jd_card_force.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,57 +1,59 @@
|
|||||||
/*
|
/*
|
||||||
极速版抢卷
|
微信签到领现金
|
||||||
|
by:小手冰凉 tg:@chianPLA
|
||||||
============Quantumultx===============
|
交流群:https://t.me/jdPLA2
|
||||||
|
脚本更新时间:2022-4-2
|
||||||
|
脚本兼容: Node.js
|
||||||
|
新手写脚本,难免有bug,能用且用。
|
||||||
|
===========================
|
||||||
[task_local]
|
[task_local]
|
||||||
#极速版抢卷
|
#微信签到领现金
|
||||||
58 59 6,9,14,17,20 * * * jd_speedcoupon.js, tag=极速版抢卷, enabled=true
|
16 0,5 * * * jd_cash_wx.js, tag=微信签到领现金, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true
|
||||||
================Loon==============
|
|
||||||
[Script]
|
|
||||||
cron "58 59 6,9,14,17,20 * * *" script-path=jd_speedcoupon.js,tag=极速版抢卷
|
|
||||||
===============Surge=================
|
|
||||||
极速版抢卷 = type=cron,cronexp="58 59 6,9,14,17,20 * * *",wake-system=1,timeout=3600,script-path=jd_speedcoupon.js
|
|
||||||
============小火箭=========
|
|
||||||
极速版抢卷 = type=cron,script-path=jd_speedcoupon.js, cronexpr="58 59 6,9,14,17,20 * * *", timeout=3600, enable=true
|
|
||||||
*/
|
*/
|
||||||
const $ = new Env('抢极速版全品卷5-2');
|
|
||||||
const moment = require('moment');
|
const $ = new Env('微信签到领现金');
|
||||||
//进容器安装依赖: npm install -g moment
|
|
||||||
const notify = $.isNode() ? require('./sendNotify') : '';
|
const notify = $.isNode() ? require('./sendNotify') : '';
|
||||||
//Node.js用户请在jdCookie.js处填写京东ck;
|
//Node.js用户请在jdCookie.js处填写京东ck;
|
||||||
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
|
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
|
||||||
let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送
|
|
||||||
const randomCount = $.isNode() ? 30 : 5;
|
|
||||||
//IOS等用户直接用NobyDa的jd cookie
|
//IOS等用户直接用NobyDa的jd cookie
|
||||||
let cookiesArr = [], cookie = '', message;
|
let cookiesArr = [], cookie = '';
|
||||||
if ($.isNode()) {
|
if ($.isNode()) {
|
||||||
Object.keys(jdCookieNode).forEach((item) => {
|
Object.keys(jdCookieNode).forEach((item) => { cookiesArr.push(jdCookieNode[item]) })
|
||||||
cookiesArr.push(jdCookieNode[item])
|
if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { };
|
||||||
})
|
|
||||||
if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {
|
|
||||||
};
|
|
||||||
} else {
|
} else {
|
||||||
cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item);
|
cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item);
|
||||||
}
|
}
|
||||||
const JD_API_HOST = 'https://api.m.jd.com/client.action?';
|
const JD_API_HOST = 'https://api.m.jd.com/client.action';
|
||||||
let wait = ms => new Promise(resolve => setTimeout(resolve, ms));
|
let allMessage = '';
|
||||||
!(async () => {
|
!(async () => {
|
||||||
if (!cookiesArr[0]) {
|
if (!cookiesArr[0]) {
|
||||||
$.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" });
|
$.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
await wait(100)
|
for (let i = 0; i < cookiesArr.length; i++) {
|
||||||
for (let j = 0; j < randomCount; ++j)
|
|
||||||
for (let i = 0; i < 1; i++) {
|
|
||||||
if (cookiesArr[i]) {
|
if (cookiesArr[i]) {
|
||||||
cookie = cookiesArr[i];
|
cookie = cookiesArr[i];
|
||||||
$.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1])
|
$.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1])
|
||||||
$.index = i + 1;
|
$.index = i + 1;
|
||||||
console.log(`*********京东账号${$.index} ${$.UserName}*********`)
|
|
||||||
$.isLogin = true;
|
$.isLogin = true;
|
||||||
$.nickName = '';
|
$.nickName = '';
|
||||||
message = '';
|
message = '';
|
||||||
await qiang();
|
await TotalBean();
|
||||||
|
console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`);
|
||||||
|
if (!$.isLogin) {
|
||||||
|
$.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" });
|
||||||
|
|
||||||
|
if ($.isNode()) {
|
||||||
|
await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`);
|
||||||
}
|
}
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
await jdCash()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (allMessage) {
|
||||||
|
if ($.isNode() && (process.env.CASH_NOTIFY_CONTROL ? process.env.CASH_NOTIFY_CONTROL === 'false' : !!1)) await notify.sendNotify($.name, allMessage);
|
||||||
|
$.msg($.name, '', allMessage);
|
||||||
}
|
}
|
||||||
})()
|
})()
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
@ -60,24 +62,29 @@ let wait = ms => new Promise(resolve => setTimeout(resolve, ms));
|
|||||||
.finally(() => {
|
.finally(() => {
|
||||||
$.done();
|
$.done();
|
||||||
})
|
})
|
||||||
|
async function jdCash() {
|
||||||
|
await mob_sign()
|
||||||
|
await mob_home()
|
||||||
|
|
||||||
async function qiang() {
|
|
||||||
await exchange()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function exchange() {
|
//做任务
|
||||||
return new Promise(resolve => {
|
function mob_sign() {
|
||||||
$.post(taskUrl('functionId=lite_newBabelAwardCollection'), (err, resp, data) => {
|
return new Promise((resolve) => {
|
||||||
|
$.get(taskUrl("cash_mob_sign", { "breakReward": 1 }), (err, resp, data) => {
|
||||||
try {
|
try {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log(`${JSON.stringify(err)}`)
|
console.log(`${JSON.stringify(err)}`)
|
||||||
console.log(`${$.name} user/exchange/bean API请求失败,请检查网路重试\n`)
|
console.log(`cash_mob_sign API请求失败,请检查网路重试`)
|
||||||
} else {
|
} else {
|
||||||
console.log(moment().format("YYYY-MM-DD HH:mm:ss.SSS"));
|
|
||||||
console.log(data);
|
|
||||||
if (safeGet(data)) {
|
if (safeGet(data)) {
|
||||||
data = JSON.parse(data);
|
data = JSON.parse(data);
|
||||||
console.log(`抢券结果:${JSON.stringify(data)}\n`)
|
// console.log(data);
|
||||||
|
if (data.data.bizCode === 0) {
|
||||||
|
console.log(`签到${data.data.bizMsg}`)
|
||||||
|
} else {
|
||||||
|
console.log(data.data.bizMsg)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@ -89,23 +96,101 @@ function exchange() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function taskUrl(function_id, body = {}) {
|
|
||||||
|
//获取任务
|
||||||
|
function mob_home() {
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
$.get(taskUrl("cash_mob_home"), async (err, resp, data) => {
|
||||||
|
try {
|
||||||
|
if (err) {
|
||||||
|
console.log(`${JSON.stringify(err)}`)
|
||||||
|
console.log(`cash_mob_home API请求失败,请检查网路重试`)
|
||||||
|
} else {
|
||||||
|
if (safeGet(data)) {
|
||||||
|
data = JSON.parse(data);
|
||||||
|
if (data.code === 0 && data.data.result) {
|
||||||
|
for (let task of data.data.result.taskInfos) {
|
||||||
|
if (task.type === 4) {
|
||||||
|
for (let i = task.doTimes; i < task.times; ++i) {
|
||||||
|
console.log(`去做${task.name}任务 ${i + 1}/${task.times}`)
|
||||||
|
await doTask(task.type, task.jump.params.skuId)
|
||||||
|
await $.wait(5000)
|
||||||
|
}
|
||||||
|
} else if (task.type === 2) {
|
||||||
|
for (let i = task.doTimes; i < task.times; ++i) {
|
||||||
|
console.log(`去做${task.name}任务 ${i + 1}/${task.times}`)
|
||||||
|
await doTask(task.type, task.jump.params.shopId)
|
||||||
|
await $.wait(5000)
|
||||||
|
}
|
||||||
|
} else if (task.type === 31) {
|
||||||
|
for (let i = task.doTimes; i < task.times; ++i) {
|
||||||
|
console.log(`去做${task.name}任务 ${i + 1}/${task.times}`)
|
||||||
|
await doTask(task.type, task.jump.params.path)
|
||||||
|
await $.wait(5000)
|
||||||
|
}
|
||||||
|
} else if (task.type === 16 || task.type === 3 || task.type === 5 || task.type === 17 || task.type === 21) {
|
||||||
|
for (let i = task.doTimes; i < task.times; ++i) {
|
||||||
|
console.log(`去做${task.name}任务 ${i + 1}/${task.times}`)
|
||||||
|
await doTask(task.type, task.jump.params.url)
|
||||||
|
await $.wait(5000)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
$.logErr(e, resp)
|
||||||
|
} finally {
|
||||||
|
resolve(data);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//做任务
|
||||||
|
function doTask(type, taskInfo) {
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
$.get(taskUrl("cash_doTask", { "type": type, "taskInfo": taskInfo }), (err, resp, data) => {
|
||||||
|
try {
|
||||||
|
if (err) {
|
||||||
|
console.log(`${JSON.stringify(err)}`)
|
||||||
|
console.log(`cash_doTask API请求失败,请检查网路重试`)
|
||||||
|
} else {
|
||||||
|
if (safeGet(data)) {
|
||||||
|
data = JSON.parse(data);
|
||||||
|
if (data.code === 0) {
|
||||||
|
console.log(`任务完成成功`)
|
||||||
|
} else {
|
||||||
|
console.log(data)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
$.logErr(e, resp)
|
||||||
|
} finally {
|
||||||
|
resolve(data);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function taskUrl(functionId, body = {}) {
|
||||||
return {
|
return {
|
||||||
url: `https://api.m.jd.com/client.action?functionId=lite_newBabelAwardCollection`,
|
url: `${JD_API_HOST}?functionId=${functionId}&body=${encodeURIComponent(JSON.stringify(body))}&&appid=CashRewardMiniH5Env&clientVersion=9.2.0&loginWQBiz=interact`,
|
||||||
headers: {
|
headers: {
|
||||||
"Accept": "*/*",
|
'Cookie': cookie,
|
||||||
"Accept-Encoding": "gzip, deflate, br",
|
'Host': 'api.m.jd.com',
|
||||||
"Accept-Language": "zh-cn",
|
'Connection': 'keep-alive',
|
||||||
"Connection": "keep-alive",
|
'Content-Type': 'application/json',
|
||||||
"Content-Type": "application/x-www-form-urlencoded",
|
'Referer': 'http://wq.jd.com/wxapp/pages/hd-interaction/index/index',
|
||||||
'origin': 'https://pro.m.jd.com',
|
'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"),
|
||||||
"Referer": "https://pro.m.jd.com/jdlite/active/3H885vA4sQj6ctYzzPVix4iiYN2P/index.html?lng=106.476617&lat=29.502674&sid=fbc43764317f538b90e0f9ab43c8285w&un_area=4_50952_106_0",
|
'Accept-Language': 'zh-cn',
|
||||||
"Cookie": cookie,
|
'Accept-Encoding': 'gzip, deflate, br',
|
||||||
"User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"),
|
|
||||||
},
|
|
||||||
body: "body=%7B%22activityId%22%3A%223H885vA4sQj6ctYzzPVix4iiYN2P%22%2C%22scene%22%3A%221%22%2C%22args%22%3A%22key%3DC1DEFD3C0396EDFC8215ACBF751C4620F0395465605CF9442326408CFB8A4F9825E83CD6C2B86F8929CB2F1095FB610F_bingo%2CroleId%3D23E2CB5340B5C6BEDF23627C434572F9_bingo%2CstrengthenKey%3D7234093DC9375F51DDB7D38147D7AD82EAEB0938B43AC37CCC32084DCB1D132207FDC1750C14EF7DD076988CA8C71BC4_bingo%22%2C%22platform%22%3A%221%22%2C%22orgType%22%3A%222%22%2C%22openId%22%3A%22-1%22%2C%22pageClickKey%22%3A%22-1%22%2C%22eid%22%3A%22EI7EMAW4ZLYP7BA2NPR3ZRDMA62D4SQSQ4OOFANS47F4GEBK2DN3LPSAVISERLPHUS75YZCZUXNDFNIQKRL6PXLHCE%22%2C%22fp%22%3A%220d25c19cc7ce1c852ad50183553c7cfe%22%2C%22shshshfp%22%3A%223622d575f3839e6ba16b0239c83567c5%22%2C%22shshshfpa%22%3A%22f62b6f85-ed1a-19a9-a983-5386fd853f3e-1633620784%22%2C%22shshshfpb%22%3A%22s5ANXcvD4c4lgaATnZ%2Fdzaw%3D%3D%22%2C%22childActivityUrl%22%3A%22https%253A%252F%252Fprodev.m.jd.com%252Fjdlite%252Factive%252F3H885vA4sQj6ctYzzPVix4iiYN2P%252Findex.html%253Flng%253D106.476367%2526lat%253D29.502914%2526sid%253Dfbc43764317f538b90e0f9ab43c8285w%2526un_area%253D4_50952_106_0%22%2C%22userArea%22%3A%22-1%22%2C%22client%22%3A%22-1%22%2C%22clientVersion%22%3A%22-1%22%2C%22uuid%22%3A%22-1%22%2C%22osVersion%22%3A%22-1%22%2C%22brand%22%3A%22-1%22%2C%22model%22%3A%22-1%22%2C%22networkType%22%3A%22-1%22%2C%22jda%22%3A%22122270672.16425253116601960425755.1642525311.1644803500.1644803556.160%22%2C%22sdkToken%22%3A%22%22%2C%22token%22%3A%22NP7KXWSKCPPCSE2KMRATB42RKR3PT3B5WW5MWJXE2JPJPKJMCGTQFGM6UVN6VY2XTLJAMOHMWQRFC%22%2C%22jstub%22%3A%22UZ625TL7NA35Q5AUO6YVSLI4SBF7UJQLFNQJFDA7G6BRNRZPD2HUPLOO65HNMSHXX7YNA62PFDEULVB7UMV7SM76HXORSWUGNJMA3IA%22%2C%22pageClick%22%3A%22Babel_Coupon%22%2C%22couponSource%22%3A%22manual%22%2C%22couponSourceDetail%22%3A%22-100%22%2C%22channel%22%3A%22%E9%80%9A%E5%A4%A9%E5%A1%94%E4%BC%9A%E5%9C%BA%22%2C%22headArea%22%3A%22605715ec560d6508f7403b91b677d79c%22%2C%22sceId%22%3A%22TTTh5%22%2C%22rstr%22%3A%2229463958%22%2C%22sstr%22%3A%221644804028555~1fR7teXPatEMDF4TnlzdzAxMQ%3D%3D.SXhNR09IeklCRk1%2BTw0HS3grQCIJBTMbCUliTl9BVH8HQQlJMApGNjYWGgUzTC1NHxAZDy0dLVcqAxIARXMH.32bbefe8~6%2C1~DE99009AC329C084289942FF81223D8AFE3987BC~1n1vrke~C~SBtGWxYPbWkdEUdXXxQObhRQAB4GbB5yehkCbGcfRhVGFBgXUgEcCnIVdnIYAAFzHQMdCQMDGEEUGBNXBBQLdxhxchgECgAVAhgEBAMYRRFuFRBRRlsUDgcfEUpBFA4XBwIFBwsJBgYGBAECBQYBDQoUGBdBUVURCRtGQkBBQlJEVREVEEFRVBQOE1VVTUZCQEBXFh0RQ11cFA5uBQQdCwQAHgcMGQEYAB8GZB4UXl8UDgIfEVpBFA4XBgUEC1FcBQ9QBwQDBAEHClFQUgIHAAMBVQEAVVYCAFATHxFXQhQOF19kWVxdXBAaFkEUDgAFBw0KBgAFBAwEBgYVEFxfFwwWUBEfG1RGVhcMFkIGcndqVUJxAlcFX1RYc2JabxlQS1JEBA8UGBdYQhMJEXhCRlhQFndeXkNMRlNGGRZ9X1AdGx4UWlRAFgsRAggDBxYZFEdSQREDaQEHAxoAAAduFRBEWxcMbxNaY1FdWFENGgYTHxFQfWUWGRQFBR0LGx4UBxsOGgMRHxsDBwUEFBgTUlEAVFANDQcEBVBSCFYGUQwAAgJVVggAVAMFA1dQAwcJU1AGBwBRUhEfG1MUaRkUXV5SEQMQUFJTUFJXR0cbHhRVXxQOE0YRFRBVXRcMFkYAHQ0cBRYZFFdXbEUbCBQEBBQYE1FXGwgURlRYUF5eDgsLAgIGDwEJER8bX1wWD20FAh8DFQJrGBdUWF5UEQMQVxYZFFlCVBEDEFcWSA%3D%3D~0a73lnr%22%2C%22mitemAddrId%22%3A%22%22%2C%22geo%22%3A%7B%22lng%22%3A%22106.476367%22%2C%22lat%22%3A%2229.502914%22%7D%2C%22addressId%22%3A%22%22%2C%22posLng%22%3A%22%22%2C%22posLat%22%3A%22%22%2C%22focus%22%3A%22%22%2C%22innerAnchor%22%3A%22%22%2C%22cv%22%3A%222.0%22%7D&screen=1242*2016&client=wh5&clientVersion=1.0.0&sid=fbc43764317f538b90e0f9ab43c8285w&uuid=16425253116601960425755.56.1644804021838&area=4_50952_106_0"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function TotalBean() {
|
function TotalBean() {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
@ -151,7 +236,6 @@ function TotalBean() {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function safeGet(data) {
|
function safeGet(data) {
|
||||||
try {
|
try {
|
||||||
if (typeof JSON.parse(data) == "object") {
|
if (typeof JSON.parse(data) == "object") {
|
||||||
885
jd_cfd_fresh.js
885
jd_cfd_fresh.js
File diff suppressed because one or more lines are too long
@ -5,14 +5,14 @@
|
|||||||
============Quantumultx===============
|
============Quantumultx===============
|
||||||
[task_local]
|
[task_local]
|
||||||
#财富岛兑换红包
|
#财富岛兑换红包
|
||||||
50 * * * * https://raw.githubusercontent.com/okyyds/yydspure/master/jd_cfd.hb.js, tag=财富岛兑换红包, enabled=true
|
50 * * * * https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_cfd.hb.js, tag=财富岛兑换红包, enabled=true
|
||||||
===========Loon============
|
===========Loon============
|
||||||
[Script]
|
[Script]
|
||||||
cron "50 * * * *" script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_cfd.hb.js,tag=财富岛兑换红包
|
cron "50 * * * *" script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_cfd.hb.js,tag=财富岛兑换红包
|
||||||
============Surge=============
|
============Surge=============
|
||||||
财富岛兑换红包 = type=cron,cronexp="50 * * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_cfd.hb.js
|
财富岛兑换红包 = type=cron,cronexp="50 * * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_cfd.hb.js
|
||||||
===========小火箭========
|
===========小火箭========
|
||||||
财富岛兑换红包 = type=cron,script-path=https://raw.githubusercontent.com/okyyds/yydspure/master/jd_cfd.hb.jss, cronexpr="50 * * * *", timeout=3600, enable=true
|
财富岛兑换红包 = type=cron,script-path=https://raw.githubusercontent.com/shufflewzc/faker2/main/jd_cfd.hb.jss, cronexpr="50 * * * *", timeout=3600, enable=true
|
||||||
*/
|
*/
|
||||||
const $ = new Env('财富岛兑换红包');
|
const $ = new Env('财富岛兑换红包');
|
||||||
CryptoScripts()
|
CryptoScripts()
|
||||||
|
|||||||
@ -38,7 +38,6 @@ $.result = [];
|
|||||||
$.shareCodes = [];
|
$.shareCodes = [];
|
||||||
let cookiesArr = [], cookie = '', token = '';
|
let cookiesArr = [], cookie = '', token = '';
|
||||||
let UA, UAInfo = {};
|
let UA, UAInfo = {};
|
||||||
let nowTimes;
|
|
||||||
const randomCount = $.isNode() ? 20 : 3;
|
const randomCount = $.isNode() ? 20 : 3;
|
||||||
$.appId = "92a36";
|
$.appId = "92a36";
|
||||||
if ($.isNode()) {
|
if ($.isNode()) {
|
||||||
@ -84,12 +83,12 @@ if ($.isNode()) {
|
|||||||
await $.wait(2000);
|
await $.wait(2000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// let res = await getAuthorShareCode('https://raw.githubusercontent.com/Aaron-lv/updateTeam/master/shareCodes/cfd.json')
|
let res = await getAuthorShareCode('https://raw.githubusercontent.com/Aaron-lv/updateTeam/master/shareCodes/cfd.json')
|
||||||
// if (!res) {
|
if (!res) {
|
||||||
// $.http.get({url: 'https://purge.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/cfd.json'}).then((resp) => {}).catch((e) => console.log('刷新CDN异常', e));
|
$.http.get({url: 'https://purge.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/cfd.json'}).then((resp) => {}).catch((e) => console.log('刷新CDN异常', e));
|
||||||
// await $.wait(1000)
|
await $.wait(1000)
|
||||||
// res = await getAuthorShareCode('https://cdn.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/cfd.json')
|
res = await getAuthorShareCode('https://cdn.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/cfd.json')
|
||||||
// }
|
}
|
||||||
$.strMyShareIds = [...(res && res.shareId || [])]
|
$.strMyShareIds = [...(res && res.shareId || [])]
|
||||||
await shareCodesFormat()
|
await shareCodesFormat()
|
||||||
for (let i = 0; i < cookiesArr.length; i++) {
|
for (let i = 0; i < cookiesArr.length; i++) {
|
||||||
@ -121,7 +120,6 @@ if ($.isNode()) {
|
|||||||
|
|
||||||
async function cfd() {
|
async function cfd() {
|
||||||
try {
|
try {
|
||||||
nowTimes = new Date(new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000)
|
|
||||||
let beginInfo = await getUserInfo();
|
let beginInfo = await getUserInfo();
|
||||||
if (beginInfo.LeadInfo.dwLeadType === 2) {
|
if (beginInfo.LeadInfo.dwLeadType === 2) {
|
||||||
console.log(`还未开通活动,尝试初始化`)
|
console.log(`还未开通活动,尝试初始化`)
|
||||||
@ -136,6 +134,10 @@ async function cfd() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!beginInfo.MarkList.daily_task_win) {
|
||||||
|
await setMark()
|
||||||
|
}
|
||||||
|
|
||||||
//抽奖
|
//抽奖
|
||||||
await $.wait(2000)
|
await $.wait(2000)
|
||||||
await composePearlState(4)
|
await composePearlState(4)
|
||||||
@ -466,10 +468,29 @@ function getAuthorShareCode(url) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setMark() {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
$.get(taskUrl("user/SetMark", `strMark=daily_task_win&strValue=1&dwType=1`), (err, resp, data) => {
|
||||||
|
try {
|
||||||
|
if (err) {
|
||||||
|
console.log(`${JSON.stringify(err)}`);
|
||||||
|
console.log(`${$.name} SetMark API请求失败,请检查网路重试`);
|
||||||
|
} else {
|
||||||
|
data = JSON.parse(data.replace(/\n/g, "").match(new RegExp(/jsonpCBK.?\((.*);*\)/))[1]);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
$.logErr(e, resp);
|
||||||
|
} finally{
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// 获取用户信息
|
// 获取用户信息
|
||||||
function getUserInfo(showInvite = true) {
|
function getUserInfo(showInvite = true) {
|
||||||
return new Promise(async (resolve) => {
|
return new Promise(async (resolve) => {
|
||||||
$.get(taskUrl(`user/QueryUserInfo`, `ddwTaskId=&strShareId=&strMarkList=${encodeURIComponent('guider_step,collect_coin_auth,guider_medal,guider_over_flag,build_food_full,build_sea_full,build_shop_full,build_fun_full,medal_guider_show,guide_guider_show,guide_receive_vistor,daily_task,guider_daily_task')}&strPgUUNum=${token['farm_jstoken']}&strPgtimestamp=${token['timestamp']}&strPhoneID=${token['phoneid']}`), async (err, resp, data) => {
|
$.get(taskUrl(`user/QueryUserInfo`, `ddwTaskId=&strShareId=&strMarkList=${encodeURIComponent('guider_step,collect_coin_auth,guider_medal,guider_over_flag,build_food_full,build_sea_full,build_shop_full,build_fun_full,medal_guider_show,guide_guider_show,guide_receive_vistor,daily_task,guider_daily_task,cfd_has_show_selef_point,choose_goods_has_show,daily_task_win,new_user_task_win,guider_new_user_task,guider_daily_task_icon,guider_nn_task_icon,tool_layer,new_ask_friend_m')}&strPgtimestamp=${token['timestamp']}&strPhoneID=${token['phoneid']}&strPgUUNum=${token['farm_jstoken']}&strVersion=1.0.1&dwIsReJoin=1`), async (err, resp, data) => {
|
||||||
try {
|
try {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log(`${JSON.stringify(err)}`)
|
console.log(`${JSON.stringify(err)}`)
|
||||||
@ -484,6 +505,7 @@ function getUserInfo(showInvite = true) {
|
|||||||
dwLandLvl,
|
dwLandLvl,
|
||||||
LeadInfo = {},
|
LeadInfo = {},
|
||||||
Business = {},
|
Business = {},
|
||||||
|
MarkList = {}
|
||||||
} = data;
|
} = data;
|
||||||
if (showInvite) {
|
if (showInvite) {
|
||||||
console.log(`获取用户信息:${sErrMsg}\n${$.showLog ? data : ""}`);
|
console.log(`获取用户信息:${sErrMsg}\n${$.showLog ? data : ""}`);
|
||||||
@ -501,12 +523,14 @@ function getUserInfo(showInvite = true) {
|
|||||||
strMyShareId,
|
strMyShareId,
|
||||||
dwLandLvl,
|
dwLandLvl,
|
||||||
LeadInfo,
|
LeadInfo,
|
||||||
|
MarkList
|
||||||
};
|
};
|
||||||
resolve({
|
resolve({
|
||||||
ddwRichBalance,
|
ddwRichBalance,
|
||||||
ddwCoinBalance,
|
ddwCoinBalance,
|
||||||
strMyShareId,
|
strMyShareId,
|
||||||
LeadInfo,
|
LeadInfo,
|
||||||
|
MarkList
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@ -601,7 +625,7 @@ function taskUrl(function_path, body = '', dwEnv = 7) {
|
|||||||
"User-Agent": UA,
|
"User-Agent": UA,
|
||||||
"Accept-Language": "zh-CN,zh-Hans;q=0.9",
|
"Accept-Language": "zh-CN,zh-Hans;q=0.9",
|
||||||
"Referer": "https://st.jingxi.com/",
|
"Referer": "https://st.jingxi.com/",
|
||||||
"Cookie": cookie
|
"Cookie": cookie + "cid=4"
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -641,7 +665,7 @@ function showMsg() {
|
|||||||
|
|
||||||
function readShareCode() {
|
function readShareCode() {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
$.get({url: `http://transfer.nz.lu/cfd`, timeout: 10000}, (err, resp, data) => {
|
$.get({url: `https://transfer.nz.lu/cfd`, timeout: 30 * 1000}, (err, resp, data) => {
|
||||||
try {
|
try {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log(JSON.stringify(err))
|
console.log(JSON.stringify(err))
|
||||||
@ -658,7 +682,7 @@ function readShareCode() {
|
|||||||
resolve(data);
|
resolve(data);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
await $.wait(10000);
|
await $.wait(30 * 1000);
|
||||||
resolve()
|
resolve()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -688,7 +712,7 @@ function TotalBean() {
|
|||||||
"User-Agent": "ScriptableWidgetExtension/185 CFNetwork/1312 Darwin/21.0.0",
|
"User-Agent": "ScriptableWidgetExtension/185 CFNetwork/1312 Darwin/21.0.0",
|
||||||
"Accept-Language": "zh-CN,zh-Hans;q=0.9",
|
"Accept-Language": "zh-CN,zh-Hans;q=0.9",
|
||||||
"Accept-Encoding": "gzip, deflate, br",
|
"Accept-Encoding": "gzip, deflate, br",
|
||||||
"Cookie": cookie
|
"Cookie": cookie + "cid=4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$.get(options, (err, resp, data) => {
|
$.get(options, (err, resp, data) => {
|
||||||
|
|||||||
669
jd_cfd_pearl.js
669
jd_cfd_pearl.js
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
226
jd_check_dependent.py
Normal file
226
jd_check_dependent.py
Normal file
@ -0,0 +1,226 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
"""
|
||||||
|
File: jd_check_dependent.py(Harbour库依赖一键检测安装(不可禁用)每小时检测一次)
|
||||||
|
Author: HarbourJ
|
||||||
|
Date: 2022/8/12 20:37
|
||||||
|
TG: https://t.me/HarbourToulu
|
||||||
|
TgChat: https://t.me/HarbourSailing
|
||||||
|
cron: 7 7 7 7 7
|
||||||
|
new Env('Faker库本地Sign依赖检测');
|
||||||
|
Description:1.Faker库jd_sign本地算法依赖一键检测安装脚本;
|
||||||
|
2.自动识别机器系统/架构,拉取最新依赖文件;
|
||||||
|
3.本地sign算法已编译支持Windows(amd64)、Linux(amd64/arm64/arm)、Macos(x86_64)系统/架构;
|
||||||
|
4.默认支持python3版本为3.8-3.9,过高或过低可能会报错;
|
||||||
|
5.若本一键配置脚本无法安装所需jd_sign依赖文件,请前往https://github.com/HarbourJ/HarbourToulu/releases自行下载系统对应的jd_sign依赖压缩文件,解压并放置/scripts/HarbourJ_HarbourToulu_main文件夹内即可。
|
||||||
|
"""
|
||||||
|
import sys
|
||||||
|
|
||||||
|
import requests, os, platform
|
||||||
|
from functools import partial
|
||||||
|
print = partial(print, flush=True)
|
||||||
|
|
||||||
|
|
||||||
|
def updateDependent():
|
||||||
|
"""
|
||||||
|
更新依赖的主函数
|
||||||
|
"""
|
||||||
|
system = platform.system().lower()
|
||||||
|
if system == "windows":
|
||||||
|
print("识别本机设备为Windows amd64")
|
||||||
|
rtu = repoTreeUpdate()
|
||||||
|
if rtu == 9:
|
||||||
|
sys.exit()
|
||||||
|
if rtu:
|
||||||
|
removeOldSign()
|
||||||
|
if download("jd_sign-win-amd64.zip"):
|
||||||
|
import zipfile
|
||||||
|
f = zipfile.ZipFile("jd_sign-win-amd64.zip", 'r')
|
||||||
|
for file in f.namelist():
|
||||||
|
f.extract(file, os.getcwd())
|
||||||
|
f.close()
|
||||||
|
return True
|
||||||
|
elif system == "darwin":
|
||||||
|
print("识别本机设备为MacOS x86_64")
|
||||||
|
rtu = repoTreeUpdate()
|
||||||
|
if rtu == 9:
|
||||||
|
sys.exit()
|
||||||
|
if rtu:
|
||||||
|
removeOldSign()
|
||||||
|
if download("jd_sign-darwin-x86_64.tar.gz"):
|
||||||
|
os.system('tar xvf jd_sign-darwin-x86_64.tar.gz')
|
||||||
|
os.system('rm -rf jd_sign-darwin-x86_64.tar.gz')
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
print("识别本机设备为Linux")
|
||||||
|
rtu = repoTreeUpdate()
|
||||||
|
if rtu == 9:
|
||||||
|
sys.exit()
|
||||||
|
if rtu:
|
||||||
|
removeOldSign()
|
||||||
|
framework = os.uname().machine
|
||||||
|
if framework == "x86_64":
|
||||||
|
if download("jd_sign-linux-amd64.tar.gz"):
|
||||||
|
os.system('tar xvf jd_sign-linux-amd64.tar.gz')
|
||||||
|
os.system('rm -rf jd_sign-linux-amd64.tar.gz')
|
||||||
|
return True
|
||||||
|
elif framework == "aarch64" or framework == "arm64":
|
||||||
|
check_ld_libc()
|
||||||
|
if download("jd_sign-linux-arm64.tar.gz"):
|
||||||
|
os.system('tar xvf jd_sign-linux-arm64.tar.gz')
|
||||||
|
os.system('rm -rf jd_sign-linux-arm64.tar.gz')
|
||||||
|
return True
|
||||||
|
elif framework == "armv7l":
|
||||||
|
check_ld_libc()
|
||||||
|
if download("jd_sign-linux-arm.tar.gz"):
|
||||||
|
os.system('tar xvf jd_sign-linux-arm.tar.gz')
|
||||||
|
os.system('rm -rf jd_sign-linux-arm.tar.gz')
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
if download("jd_sign-linux-amd64.tar.gz"):
|
||||||
|
os.system('tar xvf jd_sign-linux-amd64.tar.gz')
|
||||||
|
os.system('rm -rf jd_sign-linux-amd64.tar.gz')
|
||||||
|
return True
|
||||||
|
|
||||||
|
def check_ld_libc():
|
||||||
|
"""
|
||||||
|
检测是否存在ld-linux-aarch64.so.1、libc.musl-aarch64.so.1动态依赖文件
|
||||||
|
"""
|
||||||
|
if "ld-linux-aarch64.so.1" in (os.listdir('/lib')):
|
||||||
|
print("已存在arm64-ld依赖")
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
if download("ld-linux-aarch64.tar.gz"):
|
||||||
|
os.system('tar xvf ld-linux-aarch64.tar.gz')
|
||||||
|
os.system('cp ld-linux-aarch64.so.1 /lib')
|
||||||
|
if "ld-linux-aarch64.so.1" in (os.listdir('/lib')):
|
||||||
|
print("arm64-ld依赖安装完成~")
|
||||||
|
os.system('rm -rf ld-linux-aarch64.tar.gz')
|
||||||
|
os.system('rm -rf ld-linux-aarch64.so.1')
|
||||||
|
else:
|
||||||
|
print("arm64-ld依赖安装失败,网络连接失败了,请按依赖教程自行下载")
|
||||||
|
if "libc.musl-aarch64.so.1" in (os.listdir('/lib')):
|
||||||
|
print("已存在arm64-libc依赖")
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
if download("libc.musl-aarch64.tar.gz"):
|
||||||
|
os.system('tar xvf libc.musl-aarch64.tar.gz')
|
||||||
|
os.system('cp libc.musl-aarch64.so.1 /lib')
|
||||||
|
if "libc.musl-aarch64.so.1" in (os.listdir('/lib')):
|
||||||
|
print("arm64-libc依赖安装完成~")
|
||||||
|
os.system('rm -rf libc.musl-aarch64.tar.gz')
|
||||||
|
os.system('rm -rf libc.musl-aarch64.so.1')
|
||||||
|
else:
|
||||||
|
print("arm64-libc依赖安装失败,网络连接失败了,请按依赖教程自行下载")
|
||||||
|
|
||||||
|
def download(systemFile):
|
||||||
|
raw_url = f"https://git.metauniverse-cn.com/https://raw.githubusercontent.com/shufflewzc/faker3/main/utils/{systemFile}"
|
||||||
|
try:
|
||||||
|
fileList = os.listdir()
|
||||||
|
if systemFile in fileList:
|
||||||
|
os.remove(systemFile)
|
||||||
|
except:
|
||||||
|
print(f"删除{fileList}失败")
|
||||||
|
try:
|
||||||
|
try:
|
||||||
|
import wget
|
||||||
|
except ImportError as e:
|
||||||
|
print(e)
|
||||||
|
if "No module" in str(e):
|
||||||
|
os.system("pip install wget")
|
||||||
|
import wget
|
||||||
|
wget.download(raw_url)
|
||||||
|
print(f"{systemFile}下载成功")
|
||||||
|
return True
|
||||||
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
|
print(f"{systemFile}下载失败")
|
||||||
|
return False
|
||||||
|
|
||||||
|
def removeOldSign():
|
||||||
|
fileList = os.listdir()
|
||||||
|
if "jd_sign.so" in fileList:
|
||||||
|
try:
|
||||||
|
os.remove("jd_sign.so")
|
||||||
|
print("成功删除历史jd_sign依赖文件")
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
elif "jd_sign_x86.so" in fileList:
|
||||||
|
try:
|
||||||
|
os.remove("jd_sign_x86.so")
|
||||||
|
print("成功删除历史jd_sign依赖文件")
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
elif "jd_sign_arm64.so" in fileList:
|
||||||
|
try:
|
||||||
|
os.remove("jd_sign_arm64.so")
|
||||||
|
print("成功删除历史jd_sign依赖文件")
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def repoTreeUpdate():
|
||||||
|
"""
|
||||||
|
判断utils内的主要文件是否更新(sha值是否变化)
|
||||||
|
"""
|
||||||
|
GitAPI = 'https://api.github.com/repos/shufflewzc/faker3/git/trees/main'
|
||||||
|
try:
|
||||||
|
session = requests.session()
|
||||||
|
headers = {"Content-Type": "application/json"}
|
||||||
|
res = session.get(url=GitAPI, headers=headers, timeout=20)
|
||||||
|
if res.status_code == 200:
|
||||||
|
for x in res.json()["tree"]:
|
||||||
|
if "utils" == x["path"]:
|
||||||
|
new_sha = x["sha"]
|
||||||
|
print(new_sha)
|
||||||
|
# 获取上一次检查所记录的sha值
|
||||||
|
try:
|
||||||
|
with open('repoUpdate.log', "r") as f0:
|
||||||
|
last_sha = f0.read()
|
||||||
|
except Exception as e:
|
||||||
|
# print(e)
|
||||||
|
# 以log格式写入文件
|
||||||
|
with open("repoUpdate.log", "w") as f1:
|
||||||
|
f1.write('')
|
||||||
|
with open("repoUpdate.log", "w") as f2:
|
||||||
|
f2.write(new_sha)
|
||||||
|
if new_sha != last_sha:
|
||||||
|
print("检测到依赖版本有更新,自动更新...")
|
||||||
|
print("*" * 30)
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
print("检测到依赖版本无更新")
|
||||||
|
try:
|
||||||
|
from jd_sign import remote_redis
|
||||||
|
result = remote_redis(export_name="Test01", db_index=15)
|
||||||
|
print(result)
|
||||||
|
print("依赖正常,退出程序")
|
||||||
|
return 9
|
||||||
|
except:
|
||||||
|
print("依赖不正常,自动修复中...")
|
||||||
|
print("*" * 30)
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
print(f'请求失败:{GitAPI}')
|
||||||
|
if "message" in res.json():
|
||||||
|
print(f'错误信息:{res.json()["message"]}')
|
||||||
|
return False
|
||||||
|
except:
|
||||||
|
print(f'请求URL失败:{GitAPI}')
|
||||||
|
return False
|
||||||
|
|
||||||
|
def main():
|
||||||
|
updateDependent()
|
||||||
|
try:
|
||||||
|
from jd_sign import remote_redis
|
||||||
|
result = remote_redis(export_name="Test01", db_index=15)
|
||||||
|
print(result)
|
||||||
|
if result:
|
||||||
|
print("依赖安装/更新完成")
|
||||||
|
except:
|
||||||
|
print("依赖安装/更新失败,网络连接失败了,请按依赖教程自行下载")
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
|
|
||||||
|
|
||||||
22
jd_cjhy_completeInfoActivity.js
Normal file
22
jd_cjhy_completeInfoActivity.js
Normal file
File diff suppressed because one or more lines are too long
21
jd_cjhy_daily.js
Normal file
21
jd_cjhy_daily.js
Normal file
File diff suppressed because one or more lines are too long
21
jd_cjhy_sevenDay.js
Normal file
21
jd_cjhy_sevenDay.js
Normal file
File diff suppressed because one or more lines are too long
21
jd_cjhy_signActivity.js
Normal file
21
jd_cjhy_signActivity.js
Normal file
File diff suppressed because one or more lines are too long
22
jd_cjhy_wxCollectionActivity.js
Normal file
22
jd_cjhy_wxCollectionActivity.js
Normal file
File diff suppressed because one or more lines are too long
21
jd_cjhy_wxDrawActivity.js
Normal file
21
jd_cjhy_wxDrawActivity.js
Normal file
File diff suppressed because one or more lines are too long
23
jd_cjhy_wxKnowledgeActivity.js
Normal file
23
jd_cjhy_wxKnowledgeActivity.js
Normal file
File diff suppressed because one or more lines are too long
21
jd_cjhy_wxMcLevelAndBirthGifts.js
Normal file
21
jd_cjhy_wxMcLevelAndBirthGifts.js
Normal file
File diff suppressed because one or more lines are too long
402
jd_cjhz.js
402
jd_cjhz.js
@ -1,402 +0,0 @@
|
|||||||
/*
|
|
||||||
京东超级盒子
|
|
||||||
更新时间:2022-1-9
|
|
||||||
活动入口:京东APP-搜索-超级盒子
|
|
||||||
脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js
|
|
||||||
============Quantumultx===============
|
|
||||||
[task_local]
|
|
||||||
#京东超级盒子
|
|
||||||
24 3,13 * * * https://raw.githubusercontent.com/msechen/script/main/jd_cjhz.js, tag=京东超级盒子, img-url=https://github.com/58xinian/icon/raw/master/jdgc.png, enabled=true
|
|
||||||
|
|
||||||
================Loon==============
|
|
||||||
[Script]
|
|
||||||
cron "24 3,13 * * *" script-path=https://raw.githubusercontent.com/msechen/script/main/jd_cjhz.js,tag=京东超级盒子
|
|
||||||
|
|
||||||
===============Surge=================
|
|
||||||
京东超级盒子 = type=cron,cronexp="24 3,13 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/msechen/script/main/jd_cjhz.js
|
|
||||||
|
|
||||||
============小火箭=========
|
|
||||||
京东超级盒子 = type=cron,script-path=https://raw.githubusercontent.com/msechen/script/main/jd_cjhz.js, cronexpr="24 3,13 * * *", timeout=3600, enable=true
|
|
||||||
*/
|
|
||||||
|
|
||||||
const $ = new Env('京东超级盒子');
|
|
||||||
//Node.js用户请在jdCookie.js处填写京东ck;
|
|
||||||
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
|
|
||||||
//IOS等用户直接用NobyDa的jd cookie
|
|
||||||
let cookiesArr = [],
|
|
||||||
cookie = '',
|
|
||||||
secretp = '',
|
|
||||||
joyToken = "";
|
|
||||||
$.shareCoseList = [];
|
|
||||||
if ($.isNode()) {
|
|
||||||
Object.keys(jdCookieNode).forEach((item) => {
|
|
||||||
cookiesArr.push(jdCookieNode[item])
|
|
||||||
})
|
|
||||||
if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {};
|
|
||||||
} else {
|
|
||||||
cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item);
|
|
||||||
}
|
|
||||||
|
|
||||||
const JD_API_HOST = `https://api.m.jd.com/client.action`;
|
|
||||||
!(async () => {
|
|
||||||
console.log('活动入口:京东APP-搜索-超级盒子')
|
|
||||||
console.log('开箱目前结果为空气和红包,没发现豆子')
|
|
||||||
if (!cookiesArr[0]) {
|
|
||||||
$.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" });
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
await getToken();
|
|
||||||
cookiesArr = cookiesArr.map(ck => ck + `joyytoken=50084${joyToken};`)
|
|
||||||
$.CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS
|
|
||||||
for (let i = 0; i < cookiesArr.length; i++) {
|
|
||||||
cookie = cookiesArr[i];
|
|
||||||
if (cookie) {
|
|
||||||
$.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1])
|
|
||||||
$.index = i + 1;
|
|
||||||
$.isLogin = true;
|
|
||||||
$.nickName = '';
|
|
||||||
if (!$.isLogin) {
|
|
||||||
$.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" });
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`);
|
|
||||||
console.log(`\n入口:app主页搜超级盒子\n`);
|
|
||||||
await main()
|
|
||||||
}
|
|
||||||
};
|
|
||||||
$.shareCoseList = [...new Set([...$.shareCoseList,''])]
|
|
||||||
//去助力与开箱
|
|
||||||
for (let i = 0; i < cookiesArr.length; i++) {
|
|
||||||
cookie = cookiesArr[i];
|
|
||||||
if (cookie) {
|
|
||||||
$.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1])
|
|
||||||
$.index = i + 1;
|
|
||||||
$.isLogin = true;
|
|
||||||
$.nickName = '';
|
|
||||||
if (!$.isLogin) {
|
|
||||||
$.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" });
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if ($.shareCoseList.length >= 2) {
|
|
||||||
for (let y = 0; y < $.shareCoseList.length; y++) {
|
|
||||||
console.log(`京东账号${$.index} ${$.nickName || $.UserName}去助力${$.shareCoseList[y]}`)
|
|
||||||
await helpShare({ "taskId": $.helpId, "linkId": "Ll3Qb2mhCXSEWxruhv8qIw", "encryptPin": $.shareCoseList[y] });
|
|
||||||
await $.wait(1000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (let i = 0; i < cookiesArr.length; i++) {
|
|
||||||
cookie = cookiesArr[i];
|
|
||||||
if (cookie) {
|
|
||||||
$.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1])
|
|
||||||
$.index = i + 1;
|
|
||||||
$.isLogin = true;
|
|
||||||
$.nickName = '';
|
|
||||||
if (!$.isLogin) {
|
|
||||||
$.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" });
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
//开箱
|
|
||||||
console.log(`京东账号${$.index}去开箱`)
|
|
||||||
for (let y = 0; y < $.lotteryNumber; y++) {
|
|
||||||
console.log(`可以开箱${$.lotteryNumber}次 ==>>第${y+1}次开箱`)
|
|
||||||
await openBox({ "linkId": "Ll3Qb2mhCXSEWxruhv8qIw", "encryptPin": "" });
|
|
||||||
await $.wait(1000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})()
|
|
||||||
.catch((e) => $.logErr(e))
|
|
||||||
.finally(() => $.done())
|
|
||||||
|
|
||||||
async function main() {
|
|
||||||
await superboxSupBoxHomePage({ "taskId": "", "linkId": "Ll3Qb2mhCXSEWxruhv8qIw", "encryptPin": "" })
|
|
||||||
console.log(`【京东账号${$.index}】${$.nickName || $.UserName}互助码:${$.encryptPin}`)
|
|
||||||
await $.wait(1000);
|
|
||||||
await apTaskList({ "linkId": "Ll3Qb2mhCXSEWxruhv8qIw", "encryptPin": $.encryptPin });
|
|
||||||
if ($.allList) {
|
|
||||||
for (let i = 0; i < $.allList.length; i++) {
|
|
||||||
$.oneTask = $.allList[i];
|
|
||||||
if (["SHARE_INVITE"].includes($.oneTask.taskType)) {
|
|
||||||
$.helpId = $.oneTask.id;
|
|
||||||
$.helpLimit = $.oneTask.taskLimitTimes;
|
|
||||||
};
|
|
||||||
if (["BROWSE_SHOP"].includes($.oneTask.taskType) && $.oneTask.taskFinished === false) {
|
|
||||||
await apTaskDetail({ "taskId": $.oneTask.id, "taskType": $.oneTask.taskType, "channel": 4, "linkId": "Ll3Qb2mhCXSEWxruhv8qIw", "encryptPin": "7pcfSWHrAG9MKu3RKLl127VL5L4aIE1sZ1eRRdphpl8" });
|
|
||||||
await $.wait(1000)
|
|
||||||
for (let y = 0; y < ($.doList.status.finishNeed - $.doList.status.userFinishedTimes); y++) {
|
|
||||||
$.startList = $.doList.taskItemList[y];
|
|
||||||
$.itemName = $.doList.taskItemList[y].itemName;
|
|
||||||
console.log(`去浏览${$.itemName}`)
|
|
||||||
await apDoTask({ "taskId": $.allList[i].id, "taskType": $.allList[i].taskType, "channel": 4, "itemId": $.startList.itemId, "linkId": "Ll3Qb2mhCXSEWxruhv8qIw", "encryptPin": "7pcfSWHrAG9MKu3RKLl127VL5L4aIE1sZ1eRRdphpl8" })
|
|
||||||
await $.wait(1000)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
console.log(`任务全部完成`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//活动主页
|
|
||||||
function superboxSupBoxHomePage(body) {
|
|
||||||
return new Promise((resolve) => {
|
|
||||||
$.get(taskGetUrl('superboxSupBoxHomePage', body), (err, resp, data) => {
|
|
||||||
try {
|
|
||||||
if (err) {
|
|
||||||
console.log(`${JSON.stringify(err)}`)
|
|
||||||
console.log(`${$.name} superboxSupBoxHomePage API请求失败,请检查网路重试`)
|
|
||||||
} else {
|
|
||||||
data = JSON.parse(data);
|
|
||||||
if (data.code === 0) {
|
|
||||||
$.encryptPin = data.data.encryptPin;
|
|
||||||
$.shareCoseList.push($.encryptPin)
|
|
||||||
$.lotteryNumber = data.data.lotteryNumber
|
|
||||||
} else {
|
|
||||||
console.log(`superboxSupBoxHomePage:${JSON.stringify(data)}\n`);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
$.logErr(e, resp);
|
|
||||||
} finally {
|
|
||||||
resolve();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//获取任务列表
|
|
||||||
function apTaskList(body) {
|
|
||||||
return new Promise((resolve) => {
|
|
||||||
$.get(taskGetUrl('apTaskList', body), (err, resp, data) => {
|
|
||||||
try {
|
|
||||||
if (err) {
|
|
||||||
console.log(`${JSON.stringify(err)}`)
|
|
||||||
console.log(`${$.name} apTaskList API请求失败,请检查网路重试`)
|
|
||||||
} else {
|
|
||||||
data = JSON.parse(data);
|
|
||||||
if (data.code === 0) {
|
|
||||||
$.allList = data.data
|
|
||||||
//console.log(JSON.stringify($.allList[1]));
|
|
||||||
} else {
|
|
||||||
console.log(`apTaskList错误:${JSON.stringify(data)}\n`);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
$.logErr(e, resp);
|
|
||||||
} finally {
|
|
||||||
resolve();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
//获取任务分表
|
|
||||||
function apTaskDetail(body) {
|
|
||||||
return new Promise((resolve) => {
|
|
||||||
$.get(taskGetUrl('apTaskDetail', body), (err, resp, data) => {
|
|
||||||
try {
|
|
||||||
if (err) {
|
|
||||||
console.log(`${JSON.stringify(err)}`)
|
|
||||||
console.log(`${$.name} apTaskDetail API请求失败,请检查网路重试`)
|
|
||||||
} else {
|
|
||||||
data = JSON.parse(data);
|
|
||||||
if (data.code === 0) {
|
|
||||||
$.doList = data.data
|
|
||||||
//console.log(JSON.stringify($.doList));
|
|
||||||
} else {
|
|
||||||
console.log(`apTaskDetail错误:${JSON.stringify(data)}\n`);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
$.logErr(e, resp);
|
|
||||||
} finally {
|
|
||||||
resolve();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
//做任务
|
|
||||||
function apDoTask(body) {
|
|
||||||
return new Promise((resolve) => {
|
|
||||||
$.post(taskPostUrl('apDoTask', body), (err, resp, data) => {
|
|
||||||
try {
|
|
||||||
if (err) {
|
|
||||||
console.log(`${JSON.stringify(err)}`)
|
|
||||||
console.log(`${$.name} apDoTask API请求失败,请检查网路重试`)
|
|
||||||
} else {
|
|
||||||
data = JSON.parse(data);
|
|
||||||
//console.log(JSON.stringify(data));
|
|
||||||
if (data.success === true && data.code === 0) {
|
|
||||||
console.log(`浏览${$.itemName}完成\n已完成${data.data.userFinishedTimes}次\n`)
|
|
||||||
} else if (data.success === false && data.code === 2005) {
|
|
||||||
console.log(`${data.data.errMsg}${data.data.userFinishedTimes}次`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
$.logErr(e, resp);
|
|
||||||
} finally {
|
|
||||||
resolve();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
//助力
|
|
||||||
function helpShare(body) {
|
|
||||||
return new Promise((resolve) => {
|
|
||||||
$.get(taskGetUrl('superboxSupBoxHomePage', body), (err, resp, data) => {
|
|
||||||
try {
|
|
||||||
if (err) {
|
|
||||||
console.log(`${JSON.stringify(err)}`)
|
|
||||||
console.log(`${$.name} superboxSupBoxHomePage API请求失败,请检查网路重试`)
|
|
||||||
} else {
|
|
||||||
data = JSON.parse(data);
|
|
||||||
//console.log(JSON.stringify(data));
|
|
||||||
if (data.success === true && data.code === 0) {
|
|
||||||
console.log(`助力成功\n\n`)
|
|
||||||
} else {
|
|
||||||
console.log(`助力失败:${JSON.stringify(data)}\n\n`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
$.logErr(e, resp);
|
|
||||||
} finally {
|
|
||||||
resolve();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
//开盲盒
|
|
||||||
function openBox(body) {
|
|
||||||
return new Promise((resolve) => {
|
|
||||||
$.get(taskGetUrl('superboxOrdinaryLottery', body), (err, resp, data) => {
|
|
||||||
try {
|
|
||||||
if (err) {
|
|
||||||
console.log(`${JSON.stringify(err)}`)
|
|
||||||
console.log(`${$.name} superboxOrdinaryLottery API请求失败,请检查网路重试`)
|
|
||||||
} else {
|
|
||||||
data = JSON.parse(data);
|
|
||||||
//console.log(JSON.stringify(data));
|
|
||||||
if (data.success === true && data.code === 0 && data.data.rewardType === 2) {
|
|
||||||
console.log(`开箱成功获得${data.data.discount}元红包\n\n`)
|
|
||||||
} else if (data.success === true && data.code === 0 && data.data.rewardType !== 2) {
|
|
||||||
console.log(`开箱成功应该获得了空气${JSON.stringify(data.data)}\n\n`)
|
|
||||||
} else {
|
|
||||||
console.log(`失败:${JSON.stringify(data)}\n\n`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
$.logErr(e, resp);
|
|
||||||
} finally {
|
|
||||||
resolve();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function getToken(timeout = 0) {
|
|
||||||
return new Promise((resolve) => {
|
|
||||||
setTimeout(() => {
|
|
||||||
let url = {
|
|
||||||
url: `https://bh.m.jd.com/gettoken`,
|
|
||||||
headers: {
|
|
||||||
'Content-Type': `text/plain;charset=UTF-8`
|
|
||||||
},
|
|
||||||
body: `content={"appname":"50084","whwswswws":"","jdkey":"","body":{"platform":"1"}}`
|
|
||||||
}
|
|
||||||
$.post(url, async (err, resp, data) => {
|
|
||||||
try {
|
|
||||||
data = JSON.parse(data);
|
|
||||||
joyToken = data.joyytoken;
|
|
||||||
console.log(`joyToken = ${data.joyytoken}`)
|
|
||||||
} catch (e) {
|
|
||||||
$.logErr(e, resp);
|
|
||||||
} finally {
|
|
||||||
resolve()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}, timeout)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function taskGetUrl(functionId, body = {}) {
|
|
||||||
return {
|
|
||||||
url: `${JD_API_HOST}?functionId=${functionId}&body=${JSON.stringify(body)}&_t=${Date.now()}&appid=activities_platform&client=wh5&clientVersion=1.0.0`,
|
|
||||||
//body: `functionId=${functionId}&body=${JSON.stringify(body)}&client=wh5&clientVersion=1.0.0&uuid=ef746bc0663f7ca06cdd1fa724c15451900039cf`,
|
|
||||||
headers: {
|
|
||||||
'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"),
|
|
||||||
'Content-Type': 'application/x-www-form-urlencoded',
|
|
||||||
'Host': 'api.m.jd.com',
|
|
||||||
'Cookie': cookie,
|
|
||||||
'Origin': 'https://prodev.m.jd.com',
|
|
||||||
'Referer': 'https://pro.m.jd.com/mall/active/j8U2SMhmw3aKgfWwYQfoRR4idTT/index.html?',
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function taskPostUrl(functionId, body = {}) {
|
|
||||||
return {
|
|
||||||
url: `${JD_API_HOST}?functionId=${functionId}`,
|
|
||||||
body: `functionId=${functionId}&body=${JSON.stringify(body)}&_t=${Date.now()}&appid=activities_platform&client=wh5&clientVersion=1.0.0`,
|
|
||||||
headers: {
|
|
||||||
'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"),
|
|
||||||
'Content-Type': 'application/x-www-form-urlencoded',
|
|
||||||
'Host': 'api.m.jd.com',
|
|
||||||
'Cookie': cookie,
|
|
||||||
'Origin': 'https://prodev.m.jd.com',
|
|
||||||
'Referer': 'https://pro.m.jd.com/mall/active/j8U2SMhmw3aKgfWwYQfoRR4idTT/index.html?',
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function jsonParse(str) {
|
|
||||||
if (typeof str == "string") {
|
|
||||||
try {
|
|
||||||
return JSON.parse(str);
|
|
||||||
} catch (e) {
|
|
||||||
console.log(e);
|
|
||||||
$.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie')
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 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) }
|
|
||||||
18
jd_cjzdgf.js
Normal file
18
jd_cjzdgf.js
Normal file
File diff suppressed because one or more lines are too long
238
jd_clean_car.js
238
jd_clean_car.js
File diff suppressed because one or more lines are too long
353
jd_cleancart_nolan.js
Normal file
353
jd_cleancart_nolan.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
464
jd_computer.js
464
jd_computer.js
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
15
jd_dadoudou.js
Normal file
15
jd_dadoudou.js
Normal file
File diff suppressed because one or more lines are too long
8
jd_dd_follow_cc.js
Normal file
8
jd_dd_follow_cc.js
Normal file
File diff suppressed because one or more lines are too long
202
jd_dpqd.js
202
jd_dpqd.js
@ -1,41 +1,35 @@
|
|||||||
/*
|
/*
|
||||||
cron 0 0 * * * jd_dpqd.js
|
https://github.com/feverrun/my_scripts
|
||||||
|
如果想自己设置token,则设置以下的变量
|
||||||
|
export dpqd_token="token1&token2&token3..."
|
||||||
|
|
||||||
店铺签到,各类店铺签到,有新的店铺直接添加token即可
|
店铺签到,各类店铺签到,有新的店铺直接添加token即可
|
||||||
搬运cui521大佬脚本,请勿外传!!!
|
店铺签到的定时可采取随机定时,每天运行一次即可
|
||||||
环境变量:
|
cron "15 0,4 * * *" script-path=jd_dpqd.js,tag=店铺签到
|
||||||
DPQDTK: token1&token2
|
|
||||||
仓库不再提供token
|
|
||||||
*/
|
*/
|
||||||
let token = []
|
|
||||||
if (process.env.DPQDTK) {
|
|
||||||
if (process.env.DPQDTK.includes('\n')) {
|
|
||||||
token = [...process.env.DPQDTK.split('\n'),...token]
|
|
||||||
} else {
|
|
||||||
token = [...process.env.DPQDTK.split('&'),...token]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!token.length) {
|
|
||||||
console.log('无店铺签到token,不执行.需自备token:环境变DPQDTK: tk1&tk2.')
|
|
||||||
return
|
|
||||||
}
|
|
||||||
const $ = new Env('店铺签到');
|
const $ = new Env('店铺签到');
|
||||||
const notify = $.isNode() ? require('./sendNotify') : '';
|
const notify = $.isNode() ? require('./sendNotify') : '';
|
||||||
//Node.js用户请在jdCookie.js处填写京东ck;
|
|
||||||
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
|
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
|
||||||
//IOS等用户直接用NobyDa的jd cookie
|
|
||||||
let cookiesArr = [], cookie = '', allMessage = '', message;
|
let cookiesArr = [], cookie = '', allMessage = '', message;
|
||||||
const JD_API_HOST = 'https://api.m.jd.com/api?appid=interCenter_shopSign';
|
const JD_API_HOST = 'https://api.m.jd.com/api?appid=interCenter_shopSign';
|
||||||
|
|
||||||
let activityId = ''
|
let activityId = ''
|
||||||
let vender = ''
|
let vender = ''
|
||||||
let num = 0
|
let num = 0
|
||||||
let shopname=''
|
let token = []
|
||||||
|
let tokens = [];
|
||||||
|
let dpqd_token = ''
|
||||||
|
|
||||||
|
// const token = []
|
||||||
if ($.isNode()) {
|
if ($.isNode()) {
|
||||||
Object.keys(jdCookieNode).forEach((item) => {
|
Object.keys(jdCookieNode).forEach((item) => {
|
||||||
cookiesArr.push(jdCookieNode[item])
|
cookiesArr.push(jdCookieNode[item])
|
||||||
})
|
})
|
||||||
if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {};
|
if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {};
|
||||||
|
dpqd_token = process.env.dpqd_token ? process.env.dpqd_token : '';
|
||||||
|
if (dpqd_token != '') {
|
||||||
|
tokens = dpqd_token.split('&');
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
let cookiesData = $.getdata('CookiesJD') || "[]";
|
let cookiesData = $.getdata('CookiesJD') || "[]";
|
||||||
cookiesData = jsonParse(cookiesData);
|
cookiesData = jsonParse(cookiesData);
|
||||||
@ -51,6 +45,23 @@ if ($.isNode()) {
|
|||||||
$.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"});
|
$.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// token = await getRemoteData();
|
||||||
|
// token = token ? token : [];
|
||||||
|
token = [
|
||||||
|
"ED926C4D8074BD71C0156FA6DFDAD549",
|
||||||
|
"CDE42328CFCB396AF93D28520AE10A72",
|
||||||
|
"457A7673CBB0BA0841DC6E898CB2E282",
|
||||||
|
"4450A38980C609B19E769F268AF8FD93",
|
||||||
|
"9CC69A0B1C0275CB27FFF3C8BEE5C2F8",
|
||||||
|
"E74CB03E861577B0915630B8328B6AEE",
|
||||||
|
"0CE352C49E77D6354F8F12DD5D6745ED"
|
||||||
|
];
|
||||||
|
|
||||||
|
token = dpqd_token ? tokens : token;
|
||||||
|
|
||||||
|
await $.wait(parseInt(Math.random(2500) + 250, 10));
|
||||||
|
|
||||||
for (let i = 0; i < cookiesArr.length; i++) {
|
for (let i = 0; i < cookiesArr.length; i++) {
|
||||||
if (cookiesArr[i]) {
|
if (cookiesArr[i]) {
|
||||||
cookie = cookiesArr[i];
|
cookie = cookiesArr[i];
|
||||||
@ -59,18 +70,12 @@ if ($.isNode()) {
|
|||||||
$.isLogin = true;
|
$.isLogin = true;
|
||||||
$.nickName = '';
|
$.nickName = '';
|
||||||
message = '';
|
message = '';
|
||||||
await TotalBean();
|
|
||||||
console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`);
|
console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`);
|
||||||
if (!$.isLogin) {
|
|
||||||
$.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"});
|
|
||||||
if ($.isNode()) {
|
|
||||||
await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`);
|
|
||||||
}
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
await dpqd()
|
await dpqd()
|
||||||
await showMsg()
|
await showMsg()
|
||||||
await $.wait(1500)
|
await $.wait(1000)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($.isNode() && allMessage) {
|
if ($.isNode() && allMessage) {
|
||||||
@ -88,10 +93,13 @@ if ($.isNode()) {
|
|||||||
async function dpqd() {
|
async function dpqd() {
|
||||||
for (var j = 0; j < token.length; j++) {
|
for (var j = 0; j < token.length; j++) {
|
||||||
num = j + 1
|
num = j + 1
|
||||||
if (token[j]=='') {continue}
|
if (token[j] == '') {
|
||||||
getUA()
|
continue
|
||||||
|
}
|
||||||
await getvenderId(token[j])
|
await getvenderId(token[j])
|
||||||
if (vender=='') {continue}
|
if (vender == '') {
|
||||||
|
continue
|
||||||
|
}
|
||||||
await getvenderName(vender)
|
await getvenderName(vender)
|
||||||
await getActivityInfo(token[j], vender)
|
await getActivityInfo(token[j], vender)
|
||||||
await signCollectGift(token[j], vender, activityId)
|
await signCollectGift(token[j], vender, activityId)
|
||||||
@ -100,8 +108,9 @@ async function dpqd(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
//获取店铺ID
|
//获取店铺ID
|
||||||
function getvenderId(token) {
|
async function getvenderId(token) {
|
||||||
return new Promise(resolve => {
|
await $.wait(300);
|
||||||
|
return new Promise(async resolve => {
|
||||||
const options = {
|
const options = {
|
||||||
url: `https://api.m.jd.com/api?appid=interCenter_shopSign&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_getActivityInfo&body={%22token%22:%22${token}%22,%22venderId%22:%22%22}&jsonp=jsonp1000`,
|
url: `https://api.m.jd.com/api?appid=interCenter_shopSign&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_getActivityInfo&body={%22token%22:%22${token}%22,%22venderId%22:%22%22}&jsonp=jsonp1000`,
|
||||||
headers: {
|
headers: {
|
||||||
@ -110,10 +119,10 @@ function getvenderId(token) {
|
|||||||
"accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
|
"accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
|
||||||
"cookie": cookie,
|
"cookie": cookie,
|
||||||
"referer": 'https://h5.m.jd.com/',
|
"referer": 'https://h5.m.jd.com/',
|
||||||
"User-Agent": $.UA
|
"User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`
|
||||||
// "User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
await $.wait(400);
|
||||||
$.get(options, (err, resp, data) => {
|
$.get(options, (err, resp, data) => {
|
||||||
try {
|
try {
|
||||||
if (err) {
|
if (err) {
|
||||||
@ -140,8 +149,9 @@ function getvenderId(token) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//获取店铺名称
|
//获取店铺名称
|
||||||
function getvenderName(venderId) {
|
async function getvenderName(venderId) {
|
||||||
return new Promise(resolve => {
|
await $.wait(200);
|
||||||
|
return new Promise(async resolve => {
|
||||||
const options = {
|
const options = {
|
||||||
url: `https://wq.jd.com/mshop/QueryShopMemberInfoJson?venderId=${venderId}`,
|
url: `https://wq.jd.com/mshop/QueryShopMemberInfoJson?venderId=${venderId}`,
|
||||||
headers: {
|
headers: {
|
||||||
@ -149,10 +159,10 @@ function getvenderName(venderId) {
|
|||||||
"accept-encoding": "gzip, deflate, br",
|
"accept-encoding": "gzip, deflate, br",
|
||||||
"accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
|
"accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
|
||||||
"cookie": cookie,
|
"cookie": cookie,
|
||||||
"User-Agent": $.UA
|
"User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`
|
||||||
// "User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
await $.wait(600);
|
||||||
$.get(options, (err, resp, data) => {
|
$.get(options, (err, resp, data) => {
|
||||||
try {
|
try {
|
||||||
if (err) {
|
if (err) {
|
||||||
@ -176,8 +186,9 @@ function getvenderName(venderId) {
|
|||||||
|
|
||||||
|
|
||||||
//获取店铺活动信息
|
//获取店铺活动信息
|
||||||
function getActivityInfo(token,venderId) {
|
async function getActivityInfo(token, venderId) {
|
||||||
return new Promise(resolve => {
|
await $.wait(400);
|
||||||
|
return new Promise(async resolve => {
|
||||||
const options = {
|
const options = {
|
||||||
url: `${JD_API_HOST}&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_getActivityInfo&body={%22token%22:%22${token}%22,%22venderId%22:${venderId}}&jsonp=jsonp1005`,
|
url: `${JD_API_HOST}&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_getActivityInfo&body={%22token%22:%22${token}%22,%22venderId%22:${venderId}}&jsonp=jsonp1005`,
|
||||||
headers: {
|
headers: {
|
||||||
@ -186,10 +197,10 @@ function getActivityInfo(token,venderId) {
|
|||||||
"accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
|
"accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
|
||||||
"cookie": cookie,
|
"cookie": cookie,
|
||||||
"referer": `https://h5.m.jd.com/babelDiy/Zeus/2PAAf74aG3D61qvfKUM5dxUssJQ9/index.html?token=${token}&sceneval=2&jxsid=16105853541009626903&cu=true&utm_source=kong&utm_medium=jingfen&utm_campaign=t_1001280291_&utm_term=fa3f8f38c56f44e2b4bfc2f37bce9713`,
|
"referer": `https://h5.m.jd.com/babelDiy/Zeus/2PAAf74aG3D61qvfKUM5dxUssJQ9/index.html?token=${token}&sceneval=2&jxsid=16105853541009626903&cu=true&utm_source=kong&utm_medium=jingfen&utm_campaign=t_1001280291_&utm_term=fa3f8f38c56f44e2b4bfc2f37bce9713`,
|
||||||
"User-Agent": $.UA
|
"User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`
|
||||||
// "User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
await $.wait(700);
|
||||||
$.get(options, (err, resp, data) => {
|
$.get(options, (err, resp, data) => {
|
||||||
try {
|
try {
|
||||||
if (err) {
|
if (err) {
|
||||||
@ -220,8 +231,9 @@ function getActivityInfo(token,venderId) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//店铺签到
|
//店铺签到
|
||||||
function signCollectGift(token,venderId,activitytemp) {
|
async function signCollectGift(token, venderId, activitytemp) {
|
||||||
return new Promise(resolve => {
|
await $.wait(500);
|
||||||
|
return new Promise(async resolve => {
|
||||||
const options = {
|
const options = {
|
||||||
url: `${JD_API_HOST}&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_signCollectGift&body={%22token%22:%22${token}%22,%22venderId%22:688200,%22activityId%22:${activitytemp},%22type%22:56,%22actionType%22:7}&jsonp=jsonp1004`,
|
url: `${JD_API_HOST}&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_signCollectGift&body={%22token%22:%22${token}%22,%22venderId%22:688200,%22activityId%22:${activitytemp},%22type%22:56,%22actionType%22:7}&jsonp=jsonp1004`,
|
||||||
headers: {
|
headers: {
|
||||||
@ -230,10 +242,10 @@ function signCollectGift(token,venderId,activitytemp) {
|
|||||||
"accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
|
"accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
|
||||||
"cookie": cookie,
|
"cookie": cookie,
|
||||||
"referer": `https://h5.m.jd.com/babelDiy/Zeus/2PAAf74aG3D61qvfKUM5dxUssJQ9/index.html?token=${token}&sceneval=2&jxsid=16105853541009626903&cu=true&utm_source=kong&utm_medium=jingfen&utm_campaign=t_1001280291_&utm_term=fa3f8f38c56f44e2b4bfc2f37bce9713`,
|
"referer": `https://h5.m.jd.com/babelDiy/Zeus/2PAAf74aG3D61qvfKUM5dxUssJQ9/index.html?token=${token}&sceneval=2&jxsid=16105853541009626903&cu=true&utm_source=kong&utm_medium=jingfen&utm_campaign=t_1001280291_&utm_term=fa3f8f38c56f44e2b4bfc2f37bce9713`,
|
||||||
"User-Agent": $.UA
|
"User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`
|
||||||
// "User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
await $.wait(800);
|
||||||
$.get(options, (err, resp, data) => {
|
$.get(options, (err, resp, data) => {
|
||||||
try {
|
try {
|
||||||
if (err) {
|
if (err) {
|
||||||
@ -253,8 +265,9 @@ function signCollectGift(token,venderId,activitytemp) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//店铺获取签到信息
|
//店铺获取签到信息
|
||||||
function taskUrl(token,venderId) {
|
async function taskUrl(token, venderId) {
|
||||||
return new Promise(resolve => {
|
await $.wait(300);
|
||||||
|
return new Promise(async resolve => {
|
||||||
const options = {
|
const options = {
|
||||||
url: `${JD_API_HOST}&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_getSignRecord&body={%22token%22:%22${token}%22,%22venderId%22:${venderId},%22activityId%22:${activityId},%22type%22:56}&jsonp=jsonp1006`,
|
url: `${JD_API_HOST}&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_getSignRecord&body={%22token%22:%22${token}%22,%22venderId%22:${venderId},%22activityId%22:${activityId},%22type%22:56}&jsonp=jsonp1006`,
|
||||||
headers: {
|
headers: {
|
||||||
@ -263,10 +276,10 @@ function taskUrl(token,venderId) {
|
|||||||
"accept-language": "zh-CN,zh;q=0.9",
|
"accept-language": "zh-CN,zh;q=0.9",
|
||||||
"cookie": cookie,
|
"cookie": cookie,
|
||||||
"referer": `https://h5.m.jd.com/`,
|
"referer": `https://h5.m.jd.com/`,
|
||||||
"User-Agent": $.UA
|
"user-agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`
|
||||||
// "user-agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
await $.wait(800);
|
||||||
$.get(options, (err, resp, data) => {
|
$.get(options, (err, resp, data) => {
|
||||||
try {
|
try {
|
||||||
if (err) {
|
if (err) {
|
||||||
@ -294,51 +307,6 @@ async function showMsg() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function TotalBean() {
|
|
||||||
return new Promise(async resolve => {
|
|
||||||
const options = {
|
|
||||||
"url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`,
|
|
||||||
"headers": {
|
|
||||||
"Accept": "application/json,text/plain, */*",
|
|
||||||
"Content-Type": "application/x-www-form-urlencoded",
|
|
||||||
"Accept-Encoding": "gzip, deflate, br",
|
|
||||||
"Accept-Language": "zh-cn",
|
|
||||||
"Connection": "keep-alive",
|
|
||||||
"Cookie": cookie,
|
|
||||||
"Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2",
|
|
||||||
"User-Agent": `jdapp;android;9.3.5;10;3353234393134326-3673735303632613;network/wifi;model/MI 8;addressid/138719729;aid/3524914bc77506b1;oaid/274aeb3d01b03a22;osVer/29;appBuild/86390;psn/Mp0dlaZf4czQtfPNMEfpcYU9S/f2Vv4y|2255;psq/1;adk/;ads/;pap/JA2015_311210|9.3.5|ANDROID 10;osv/10;pv/2039.1;jdv/0|androidapp|t_335139774|appshare|QQfriends|1611211482018|1611211495;ref/com.jingdong.app.mall.home.JDHomeFragment;partner/jingdong;apprpd/Home_Main;eufv/1;jdSupportDarkMode/0;Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36`
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$.post(options, (err, resp, data) => {
|
|
||||||
try {
|
|
||||||
if (err) {
|
|
||||||
console.log(`${JSON.stringify(err)}`)
|
|
||||||
console.log(`${$.name} API请求失败,请检查网路重试`)
|
|
||||||
} else {
|
|
||||||
if (data) {
|
|
||||||
data = JSON.parse(data);
|
|
||||||
if (data['retcode'] === 13) {
|
|
||||||
$.isLogin = false; //cookie过期
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (data['retcode'] === 0) {
|
|
||||||
$.nickName = data['base'].nickname;
|
|
||||||
} else {
|
|
||||||
$.nickName = $.UserName
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
console.log(`京东服务器返回空数据`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
$.logErr(e, resp)
|
|
||||||
} finally {
|
|
||||||
resolve();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function jsonParse(str) {
|
function jsonParse(str) {
|
||||||
if (typeof str == "string") {
|
if (typeof str == "string") {
|
||||||
try {
|
try {
|
||||||
@ -351,16 +319,38 @@ function jsonParse(str) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function randomString(e) {
|
function getRemoteData()
|
||||||
e = e || 32;
|
{
|
||||||
let t = "abcdef0123456789", a = t.length, n = "";
|
return new Promise(resolve => {
|
||||||
for (i = 0; i < e; i++)
|
const options = {
|
||||||
n += t.charAt(Math.floor(Math.random() * a));
|
url: `https://feverrun.coding.net/p/feverrun/d/cdn/git/raw/master/dpqd.json`,
|
||||||
return n
|
headers: {
|
||||||
|
"accept": "application/json",
|
||||||
|
"accept-encoding": "gzip, deflate, br",
|
||||||
|
"accept-language": "zh-CN,zh;q=0.9",
|
||||||
|
"user-agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`
|
||||||
|
},
|
||||||
|
timeout: 30000,
|
||||||
}
|
}
|
||||||
|
$.get(options, (err, resp, data) => {
|
||||||
function getUA() {
|
console.log(`data:${data}`);
|
||||||
$.UA = `jdapp;iPhone;10.2.2;13.1.2;${randomString(40)};M/5.0;network/wifi;ADID/;model/iPhone8,1;addressid/2308460611;appBuild/167863;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1;`
|
try {
|
||||||
|
if (err) {
|
||||||
|
console.log(`\n${$.name}: API查询请求失败 ‼️‼️`)
|
||||||
|
$.logErr(err);
|
||||||
|
} else {
|
||||||
|
data = data;
|
||||||
|
if(typeof(data) == 'string') {
|
||||||
|
data = JSON.parse(data)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
$.logErr(e, resp);
|
||||||
|
} finally {
|
||||||
|
resolve(data || []);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// prettier-ignore
|
// prettier-ignore
|
||||||
|
|||||||
@ -108,7 +108,7 @@ if ($.isNode()) {
|
|||||||
}
|
}
|
||||||
let res = [];
|
let res = [];
|
||||||
if(helpFlag){
|
if(helpFlag){
|
||||||
res = await getAuthorShareCode('');
|
res = await getAuthorShareCode('https://raw.githubusercontent.com/star261/jd/main/code/dreamFactory_tuan.json');
|
||||||
if(!res){
|
if(!res){
|
||||||
res = [];
|
res = [];
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user