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 = [
|
||||
"jdapp;android;10.1.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; ONEPLUS A5010 Build/QKQ1.191014.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36",
|
||||
"jdapp;iPhone;10.1.0;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;android;10.1.0;9;network/4g;Mozilla/5.0 (Linux; Android 9; Mi Note 3 Build/PKQ1.181007.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045131 Mobile Safari/537.36",
|
||||
"jdapp;android;10.1.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; GM1910 Build/QKQ1.190716.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36",
|
||||
"jdapp;android;10.1.0;9;network/wifi;Mozilla/5.0 (Linux; Android 9; 16T Build/PKQ1.190616.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36",
|
||||
"jdapp;iPhone;10.1.0;13.6;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.0;13.6;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.0;13.5;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.0;14.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.0;13.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.0;13.7;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.0;14.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.0;13.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.0;13.4;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.0;14.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;android;10.1.0;9;network/wifi;Mozilla/5.0 (Linux; Android 9; MI 6 Build/PKQ1.190118.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36",
|
||||
"jdapp;android;10.1.0;11;network/wifi;Mozilla/5.0 (Linux; Android 11; Redmi K30 5G Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045511 Mobile Safari/537.36",
|
||||
"jdapp;iPhone;10.1.0;11.4;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 11_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15F79",
|
||||
"jdapp;android;10.1.0;10;;network/wifi;Mozilla/5.0 (Linux; Android 10; M2006J10C Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36",
|
||||
"jdapp;android;10.1.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; M2006J10C Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36",
|
||||
"jdapp;android;10.1.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; ONEPLUS A6000 Build/QKQ1.190716.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045224 Mobile Safari/537.36",
|
||||
"jdapp;android;10.1.0;9;network/wifi;Mozilla/5.0 (Linux; Android 9; MHA-AL00 Build/HUAWEIMHA-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36",
|
||||
"jdapp;android;10.1.0;8.1.0;network/wifi;Mozilla/5.0 (Linux; Android 8.1.0; 16 X Build/OPM1.171019.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36",
|
||||
"jdapp;android;10.1.0;8.0.0;network/wifi;Mozilla/5.0 (Linux; Android 8.0.0; HTC U-3w Build/OPR6.170623.013; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36",
|
||||
"jdapp;iPhone;10.1.0;14.0.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_0_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;android;10.1.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; LYA-AL00 Build/HUAWEILYA-AL00L; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36",
|
||||
"jdapp;iPhone;10.1.0;14.2;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.0;14.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.0;14.2;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;android;10.1.0;8.1.0;network/wifi;Mozilla/5.0 (Linux; Android 8.1.0; MI 8 Build/OPM1.171019.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045131 Mobile Safari/537.36",
|
||||
"jdapp;android;10.1.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; Redmi K20 Pro Premium Edition Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045227 Mobile Safari/537.36",
|
||||
"jdapp;iPhone;10.1.0;14.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.0;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;android;10.1.0;11;network/wifi;Mozilla/5.0 (Linux; Android 11; Redmi K20 Pro Premium Edition Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045513 Mobile Safari/537.36",
|
||||
"jdapp;android;10.1.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045227 Mobile Safari/537.36",
|
||||
"jdapp;iPhone;10.1.0;14.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;android;10.1.6;10;network/wifi;Mozilla/5.0 (Linux; Android 10; ONEPLUS A5010 Build/QKQ1.191014.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36",
|
||||
"jdapp;iPhone;10.1.6;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;android;10.1.6;9;network/4g;Mozilla/5.0 (Linux; Android 9; Mi Note 3 Build/PKQ1.181007.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045131 Mobile Safari/537.36",
|
||||
"jdapp;android;10.1.6;10;network/wifi;Mozilla/5.0 (Linux; Android 10; GM1910 Build/QKQ1.190716.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36",
|
||||
"jdapp;android;10.1.6;9;network/wifi;Mozilla/5.0 (Linux; Android 9; 16T Build/PKQ1.190616.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36",
|
||||
"jdapp;iPhone;10.1.6;13.6;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.6;13.6;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.6;13.5;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.6;14.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.6;13.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.6;13.7;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.6;14.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.6;13.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.6;13.4;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.6;14.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;android;10.1.6;9;network/wifi;Mozilla/5.0 (Linux; Android 9; MI 6 Build/PKQ1.190118.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36",
|
||||
"jdapp;android;10.1.6;11;network/wifi;Mozilla/5.0 (Linux; Android 11; Redmi K30 5G Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045511 Mobile Safari/537.36",
|
||||
"jdapp;iPhone;10.1.6;11.4;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 11_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15F79",
|
||||
"jdapp;android;10.1.6;10;;network/wifi;Mozilla/5.0 (Linux; Android 10; M2006J10C Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36",
|
||||
"jdapp;android;10.1.6;10;network/wifi;Mozilla/5.0 (Linux; Android 10; M2006J10C Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36",
|
||||
"jdapp;android;10.1.6;10;network/wifi;Mozilla/5.0 (Linux; Android 10; ONEPLUS A6000 Build/QKQ1.190716.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045224 Mobile Safari/537.36",
|
||||
"jdapp;android;10.1.6;9;network/wifi;Mozilla/5.0 (Linux; Android 9; MHA-AL00 Build/HUAWEIMHA-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36",
|
||||
"jdapp;android;10.1.6;8.1.0;network/wifi;Mozilla/5.0 (Linux; Android 8.1.0; 16 X Build/OPM1.171019.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36",
|
||||
"jdapp;android;10.1.6;8.0.0;network/wifi;Mozilla/5.0 (Linux; Android 8.0.0; HTC U-3w Build/OPR6.170623.013; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36",
|
||||
"jdapp;iPhone;10.1.6;14.0.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_0_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;android;10.1.6;10;network/wifi;Mozilla/5.0 (Linux; Android 10; LYA-AL00 Build/HUAWEILYA-AL00L; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36",
|
||||
"jdapp;iPhone;10.1.6;14.2;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.6;14.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.6;14.2;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;android;10.1.6;8.1.0;network/wifi;Mozilla/5.0 (Linux; Android 8.1.0; MI 8 Build/OPM1.171019.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045131 Mobile Safari/537.36",
|
||||
"jdapp;android;10.1.6;10;network/wifi;Mozilla/5.0 (Linux; Android 10; Redmi K20 Pro Premium Edition Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045227 Mobile Safari/537.36",
|
||||
"jdapp;iPhone;10.1.6;14.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;iPhone;10.1.6;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
"jdapp;android;10.1.6;11;network/wifi;Mozilla/5.0 (Linux; Android 11; Redmi K20 Pro Premium Edition Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045513 Mobile Safari/537.36",
|
||||
"jdapp;android;10.1.6;10;network/wifi;Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045227 Mobile Safari/537.36",
|
||||
"jdapp;iPhone;10.1.6;14.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
|
||||
'jdltapp;iPad;3.7.0;14.4;network/wifi;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;android;3.7.0;10;2346663656561603-4353564623932316;network/wifi;model/ONEPLUS A5010;addressid/0;aid/2dfceea045ed292a;oaid/;osVer/29;appBuild/1436;psn/BS6Y9SAiw0IpJ4ro7rjSOkCRZTgR3z2K|10;psq/5;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 10;osv/10;pv/10.5;jdv/;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/oppo;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 10; ONEPLUS A5010 Build/QKQ1.191014.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045140 Mobile Safari/537.36',
|
||||
'jdltapp;iPhone;3.7.0;14.1;59d6ae6e8387bd09fe046d5b8918ead51614e80a;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone12,1;hasOCPay/0;appBuild/1017;supportBestPay/0;addressid/;pv/1.26;apprpd/;ref/JDLTSubMainPageViewController;psq/0;ads/;psn/59d6ae6e8387bd09fe046d5b8918ead51614e80a|3;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;13.5;22d679c006bf9c087abf362cf1d2e0020ebb8798;network/wifi;ADID/10857A57-DDF8-4A0D-A548-7B8F43AC77EE;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPhone12,1;addressid/2378947694;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/15.7;apprpd/Allowance_Registered;ref/JDLTTaskCenterViewController;psq/6;ads/;psn/22d679c006bf9c087abf362cf1d2e0020ebb8798|22;jdv/0|kong|t_1000170135|tuiguang|notset|1614153044558|1614153044;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 13.5;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;android;3.7.0;10;2616935633265383-5333463636261326;network/UNKNOWN;model/M2007J3SC;addressid/1840745247;aid/ba9e3b5853dccb1b;oaid/371d8af7dd71e8d5;osVer/29;appBuild/1436;psn/t7JmxZUXGkimd4f9Jdul2jEeuYLwxPrm|8;psq/6;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 10;osv/10;pv/5.6;jdv/;ref/com.jd.jdlite.lib.jdlitemessage.view.activity.MessageCenterMainActivity;partner/xiaomi;apprpd/MessageCenter_MessageMerge;eufv/1;Mozilla/5.0 (Linux; Android 10; M2007J3SC Build/QKQ1.200419.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045135 Mobile Safari/537.36',
|
||||
'jdltapp;iPhone;3.7.0;14.3;d7beab54ae7758fa896c193b49470204fbb8fce9;network/4g;ADID/97AD46C9-6D49-4642-BF6F-689256673906;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/6.28;apprpd/;ref/JDLTRedPacketViewController;psq/3;ads/;psn/d7beab54ae7758fa896c193b49470204fbb8fce9|8;jdv/0|kong|t_1001707023_|jingfen|79ad0319fa4d47e38521a616d80bc4bd|1613800945610|1613824900;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;android;3.7.0;9;D246836333735-3264353430393;network/4g;model/MIX 2;addressid/138678023;aid/bf8bcf1214b3832a;oaid/308540d1f1feb2f5;osVer/28;appBuild/1436;psn/Z/rGqfWBY/h5gcGFnVIsRw==|16;psq/3;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 9;osv/9;pv/13.7;jdv/;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/xiaomi;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 9; MIX 2 Build/PKQ1.190118.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045135 Mobile Safari/537.36',
|
||||
'jdltapp;iPhone;3.7.0;14.4;eb5a9e7e596e262b4ffb3b6b5c830984c8a5c0d5;network/wifi;ADID/5603541B-30C1-4B5C-A782-20D0B569D810;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,2;addressid/1041002757;hasOCPay/0;appBuild/101;supportBestPay/0;pv/34.6;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/5;ads/;psn/eb5a9e7e596e262b4ffb3b6b5c830984c8a5c0d5|44;jdv/0|androidapp|t_335139774|appshare|CopyURL|1612612940307|1612612944;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.3;21631ed983b3e854a3154b0336413825ad0d6783;network/3g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,4;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.47;apprpd/;ref/JDLTSubMainPageViewController;psq/8;ads/;psn/21631ed983b3e854a3154b0336413825ad0d6783|9;jdv/0|direct|-|none|-|1614150725100|1614225882;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;13.5;500a795cb2abae60b877ee4a1930557a800bef1c;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone8,1;addressid/669949466;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/9.11;apprpd/;ref/JDLTSubMainPageViewController;psq/10;ads/;psn/500a795cb2abae60b877ee4a1930557a800bef1c|11;jdv/;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 13.5;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPad;3.7.0;14.4;f5e7b7980fb50efc9c294ac38653c1584846c3db;network/wifi;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPad6,3;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/231.11;pap/JA2020_3112531|3.7.0|IOS 14.4;apprpd/;psn/f5e7b7980fb50efc9c294ac38653c1584846c3db|305;usc/kong;jdv/0|kong|t_1000170135|tuiguang|notset|1613606450668|1613606450;umd/tuiguang;psq/2;ucp/t_1000170135;app_device/IOS;utr/notset;ref/JDLTRedPacketViewController;adk/;ads/;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.4;19fef5419f88076c43f5317eabe20121d52c6a61;network/wifi;ADID/00000000-0000-0000-0000-000000000000;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,8;addressid/3430850943;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/10.4;apprpd/;ref/JDLTSubMainPageViewController;psq/3;ads/;psn/19fef5419f88076c43f5317eabe20121d52c6a61|16;jdv/0|kong|t_1001327829_|jingfen|f51febe09dd64b20b06bc6ef4c1ad790#/|1614096460311|1614096511;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148',
|
||||
'jdltapp;iPhone;3.7.0;12.2;f995bc883282f7c7ea9d7f32da3f658127aa36c7;network/4g;ADID/9F40F4CA-EA7C-4F2E-8E09-97A66901D83E;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone10,4;addressid/525064695;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/11.11;apprpd/;ref/JDLTSubMainPageViewController;psq/2;ads/;psn/f995bc883282f7c7ea9d7f32da3f658127aa36c7|22;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 12.2;Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;android;3.7.0;10;5366566313931326-6633931643233693;network/wifi;model/Mi9 Pro 5G;addressid/0;aid/5fe6191bf39a42c9;oaid/e3a9473ef6699f75;osVer/29;appBuild/1436;psn/b3rJlGi AwLqa9AqX7Vp0jv4T7XPMa0o|5;psq/4;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 10;osv/10;pv/5.4;jdv/;ref/HomeFragment;partner/xiaomi;apprpd/Home_Main;eufv/1;Mozilla/5.0 (Linux; Android 10; Mi9 Pro 5G Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045135 Mobile Safari/537.36',
|
||||
'jdltapp;iPhone;3.7.0;14.4;4e6b46913a2e18dd06d6d69843ee4cdd8e033bc1;network/3g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,2;addressid/666624049;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/54.11;apprpd/MessageCenter_MessageMerge;ref/MessageCenterController;psq/10;ads/;psn/4e6b46913a2e18dd06d6d69843ee4cdd8e033bc1|101;jdv/0|kong|t_2010804675_|jingfen|810dab1ba2c04b8588c5aa5a0d44c4bd|1614183499;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.2;c71b599e9a0bcbd8d1ad924d85b5715530efad06;network/wifi;ADID/751C6E92-FD10-4323-B37C-187FD0CF0551;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,8;addressid/4053561885;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/263.8;apprpd/;ref/JDLTSubMainPageViewController;psq/2;ads/;psn/c71b599e9a0bcbd8d1ad924d85b5715530efad06|481;jdv/0|kong|t_1001610202_|jingfen|3911bea7ee2f4fcf8d11fdf663192bbe|1614157052210|1614157056;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.2;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.4;2d306ee3cacd2c02560627a5113817ebea20a2c9;network/4g;ADID/A346F099-3182-4889-9A62-2B3C28AB861E;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,3;hasOCPay/0;appBuild/1017;supportBestPay/0;addressid/;pv/1.35;apprpd/Allowance_Registered;ref/JDLTTaskCenterViewController;psq/0;ads/;psn/2d306ee3cacd2c02560627a5113817ebea20a2c9|2;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.4;28355aff16cec8bcf3e5728dbbc9725656d8c2c2;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone10,2;addressid/833058617;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.10;apprpd/;ref/JDLTWebViewController;psq/9;ads/;psn/28355aff16cec8bcf3e5728dbbc9725656d8c2c2|5;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;13.5;24ddac73a3de1b91816b7aedef53e97c4c313733;network/4g;ADID/598C6841-76AC-4512-AA97-CBA940548D70;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPhone11,6;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/12.6;apprpd/;ref/JDLTSubMainPageViewController;psq/5;ads/;psn/24ddac73a3de1b91816b7aedef53e97c4c313733|23;jdv/0|kong|t_1000170135|tuiguang|notset|1614126110904|1614126110;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 13.5;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.4;d7732ba60c8ff73cc3f5ba7290a3aa9551f73a1b;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone12,1;addressid/25239372;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/8.6;apprpd/;ref/JDLTSubMainPageViewController;psq/5;ads/;psn/d7732ba60c8ff73cc3f5ba7290a3aa9551f73a1b|14;jdv/0|kong|t_1001226363_|jingfen|5713234d1e1e4893b92b2de2cb32484d|1614182989528|1614182992;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.4;ca1a32afca36bc9fb37fd03f18e653bce53eaca5;network/wifi;ADID/3AF380AB-CB74-4FE6-9E7C-967693863CA3;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPhone8,1;addressid/138323416;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/72.12;apprpd/;ref/JDLTRedPacketViewController;psq/3;ads/;psn/ca1a32afca36bc9fb37fd03f18e653bce53eaca5|109;jdv/0|kong|t_1000536212_|jingfen|c82bfa19e33a4269a5884ffc614790f4|1614141246;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;android;3.7.0;10;7346933333666353-8333366646039373;network/wifi;model/ONEPLUS A5010;addressid/138117973;aid/7d933f6583cfd097;oaid/;osVer/29;appBuild/1436;psn/T/eqfRSwp8VKEvvXyEunq09Cg2MUkiQ5|17;psq/4;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 10;osv/10;pv/11.4;jdv/0|kong|t_1001849073_|jingfen|495a47f6c0b8431c9d460f61ad2304dc|1614084403978|1614084407;ref/HomeFragment;partner/oppo;apprpd/Home_Main;eufv/1;Mozilla/5.0 (Linux; Android 10; ONEPLUS A5010 Build/QKQ1.191014.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045140 Mobile Safari/537.36',
|
||||
'jdltapp;android;3.7.0;11;4626269356736353-5353236346334673;network/wifi;model/M2006J10C;addressid/0;aid/dbb9e7655526d3d7;oaid/66a7af49362987b0;osVer/30;appBuild/1436;psn/rQRQgJ 4 S3qkq8YDl28y6jkUHmI/rlX|3;psq/4;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 11;osv/11;pv/3.4;jdv/;ref/HomeFragment;partner/xiaomi;apprpd/Home_Main;eufv/1;Mozilla/5.0 (Linux; Android 11; M2006J10C Build/RP1A.200720.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045513 Mobile Safari/537.36',
|
||||
'jdltapp;iPhone;3.7.0;14.4;78fc1d919de0c8c2de15725eff508d8ab14f9c82;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,1;addressid/137829713;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/23.11;apprpd/;ref/JDLTSubMainPageViewController;psq/10;ads/;psn/78fc1d919de0c8c2de15725eff508d8ab14f9c82|34;jdv/0|iosapp|t_335139774|appshare|Wxfriends|1612508702380|1612534293;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;android;3.7.0;10;0373263343266633-5663030363465326;network/wifi;model/Redmi Note 7;addressid/590846082;aid/07b34bf3e6006d5b;oaid/17975a142e67ec92;osVer/29;appBuild/1436;psn/OHNqtdhQKv1okyh7rB3HxjwI00ixJMNG|4;psq/3;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 10;osv/10;pv/2.3;jdv/;ref/activityId=8a8fabf3cccb417f8e691b6774938bc2;partner/xiaomi;apprpd/jsbqd_home;eufv/1;Mozilla/5.0 (Linux; Android 10; Redmi Note 7 Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/88.0.4324.152 Mobile Safari/537.36',
|
||||
'jdltapp;android;3.7.0;10;3636566623663623-1693635613166646;network/wifi;model/ASUS_I001DA;addressid/1397761133;aid/ccef2fc2a96e1afd;oaid/;osVer/29;appBuild/1436;psn/T8087T0D82PHzJ4VUMGFrfB9dw4gUnKG|76;psq/5;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 10;osv/10;pv/73.5;jdv/0|kong|t_1002354188_|jingfen|2335e043b3344107a2750a781fde9a2e#/|1614097081426|1614097087;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/yingyongbao;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 10; ASUS_I001DA Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045140 Mobile Safari/537.36',
|
||||
'jdltapp;iPhone;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone10,2;addressid/138419019;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/5.7;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/6;ads/;psn/4ee6af0db48fd605adb69b63f00fcbb51c2fc3f0|9;jdv/0|direct|-|none|-|1613705981655|1613823229;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.3;network/wifi;ADID/F9FD7728-2956-4DD1-8EDD-58B07950864C;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone10,1;addressid/1346909722;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/30.8;apprpd/;ref/JDLTSubMainPageViewController;psq/7;ads/;psn/40d4d4323eb3987226cae367d6b0d8be50f2c7b3|39;jdv/0|kong|t_1000252057_0|tuiguang|eba7648a0f4445aa9cfa6f35c6f36e15|1613995717959|1613995723;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.4;network/wifi;ADID/5D306F0D-A131-4B26-947E-166CCB9BFFFF;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,6;addressid/138164461;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/7.8;apprpd/;ref/JDLTSubMainPageViewController;psq/7;ads/;psn/d40e5d4a33c100e8527f779557c347569b49c304|7;jdv/0|kong|t_1001226363_|jingfen|3bf5372cb9cd445bbb270b8bc9a34f00|1608439066693|1608439068;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPad;3.7.0;14.5;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPad8,9;hasOCPay/0;appBuild/1017;supportBestPay/0;addressid/;pv/1.20;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/5;ads/;psn/d9f5ddaa0160a20f32fb2c8bfd174fae7993c1b4|3;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.5;Mozilla/5.0 (iPad; CPU OS 14_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.3;network/wifi;ADID/31548A9C-8A01-469A-B148-E7D841C91FD0;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/10.5;apprpd/;ref/JDLTSubMainPageViewController;psq/4;ads/;psn/a858fb4b40e432ea32f80729916e6c3e910bb922|12;jdv/0|direct|-|none|-|1613898710373|1613898712;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;13.5;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,2;addressid/2237496805;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/13.6;apprpd/;ref/JDLTSubMainPageViewController;psq/5;ads/;psn/48e495dcf5dc398b4d46b27e9f15a2b427a154aa|15;jdv/0|direct|-|none|-|1613354874698|1613952828;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 13.5;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;android;3.7.0;10;3346332626262353-1666434336539336;network/wifi;model/ONEPLUS A6000;addressid/0;aid/3d3bbb25af44c59c;oaid/;osVer/29;appBuild/1436;psn/ECbc2EqmdSa7mDF1PS1GSrV/Tn7R1LS1|6;psq/8;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 10;osv/10;pv/2.67;jdv/0|direct|-|none|-|1613822479379|1613991194;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/oppo;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 10; ONEPLUS A6000 Build/QKQ1.190716.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045140 Mobile Safari/537.36',
|
||||
'jdltapp;android;3.7.0;8.1.0;8363834353530333132333132373-43D2930366035323639333662383;network/wifi;model/16th Plus;addressid/0;aid/f909e5f2c464c7c6;oaid/;osVer/27;appBuild/1436;psn/c21YWvVr77Hn6 pOZfxXGY4TZrre1 UOL5hcPbCEDMo=|3;psq/10;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 8.1.0;osv/8.1.0;pv/2.15;jdv/;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/jsxdlyqj09;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 8.1.0; 16th Plus Build/OPM1.171019.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045514 Mobile Safari/537.36',
|
||||
'jdltapp;android;3.7.0;11;1343467336264693-3343562673463613;network/wifi;model/Mi 10 Pro;addressid/0;aid/14d7cbd934eb7dc1;oaid/335f198546eb3141;osVer/30;appBuild/1436;psn/ZcQh/Wov sNYfZ6JUjTIUBu28 KT0T3u|1;psq/24;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 11;osv/11;pv/1.24;jdv/;ref/com.jd.jdlite.lib.jdlitemessage.view.activity.MessageCenterMainActivity;partner/xiaomi;apprpd/MessageCenter_MessageMerge;eufv/1;Mozilla/5.0 (Linux; Android 11; Mi 10 Pro Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/88.0.4324.181 Mobile Safari/537.36',
|
||||
'jdltapp;android;3.7.0;10;8353636393732346-6646931673935346;network/wifi;model/MI 8;addressid/1969998059;aid/8566972dfd9a795d;oaid/4a8b773c3e307386;osVer/29;appBuild/1436;psn/PhYbUtCsCJo r 1b8hwxjnY8rEv5S8XC|383;psq/14;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 10;osv/10;pv/374.14;jdv/0|iosapp|t_335139774|liteshare|CopyURL|1609306590175|1609306596;ref/com.jd.jdlite.lib.jdlitemessage.view.activity.MessageCenterMainActivity;partner/jsxdlyqj09;apprpd/MessageCenter_MessageMerge;eufv/1;Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045140 Mobile Safari/537.36',
|
||||
'jdltapp;iPhone;3.7.0;14.4;6d343c58764a908d4fa56609da4cb3a5cc1396d3;network/wifi;ADID/4965D884-3E61-4C4E-AEA7-9A8CE3742DA7;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,1;addressid/70390480;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.24;apprpd/MyJD_Main;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fafter%2Findex.action%3FcategoryId%3D600%26v%3D6%26entry%3Dm_self_jd;psq/4;ads/;psn/6d343c58764a908d4fa56609da4cb3a5cc1396d3|17;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;13.6.1;4606ddccdfe8f343f8137de7fea7f91fc4aef3a3;network/4g;ADID/C6FB6E20-D334-45FA-818A-7A4C58305202;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPhone10,1;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/5.9;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/8;ads/;psn/4606ddccdfe8f343f8137de7fea7f91fc4aef3a3|5;jdv/0|iosapp|t_335139774|liteshare|Qqfriends|1614206359106|1614206366;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 13.6.1;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.4;3b6e79334551fc6f31952d338b996789d157c4e8;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone10,1;addressid/138051400;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/14.34;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/12;ads/;psn/3b6e79334551fc6f31952d338b996789d157c4e8|46;jdv/0|kong|t_1001707023_|jingfen|e80d7173a4264f4c9a3addcac7da8b5d|1613837384708|1613858760;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;android;3.7.0;10;1346235693831363-2373837393932673;network/wifi;model/LYA-AL00;addressid/3321567203;aid/1d2e9816278799b7;oaid/00000000-0000-0000-0000-000000000000;osVer/29;appBuild/1436;psn/45VUZFTZJkhP5fAXbeBoQ0 O2GCB I|7;psq/5;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 10;osv/10;pv/5.8;jdv/0|iosapp|t_335139774|liteshare|CopyURL|1614066210320|1614066219;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/huawei;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 10; LYA-AL00 Build/HUAWEILYA-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Mobile Safari/537.36',
|
||||
'jdltapp;iPhone;3.7.0;14.3;c2a8854e622a1b17a6c56c789f832f9d78ef1ba7;network/wifi;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPhone12,5;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/3.9;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/8;ads/;psn/c2a8854e622a1b17a6c56c789f832f9d78ef1ba7|6;jdv/0|direct|-|none|-|1613541016735|1613823566;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;android;3.7.0;9;;network/wifi;model/MIX 2S;addressid/;aid/f87efed6d9ed3c65;oaid/94739128ef9dd245;osVer/28;appBuild/1436;psn/R7wD/OWkQjYWxax1pDV6kTIDFPJCUid7C/nl2hHnUuI=|3;psq/13;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 9;osv/9;pv/1.42;jdv/;ref/activityId=8a8fabf3cccb417f8e691b6774938bc2;partner/xiaomi;apprpd/jsbqd_home;eufv/1;Mozilla/5.0 (Linux; Android 9; MIX 2S Build/PKQ1.180729.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/88.0.4324.181 Mobile Safari/537.36',
|
||||
'jdltapp;iPhone;3.7.0;14.4;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;android;3.7.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; Redmi Note 7 Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/88.0.4324.152 Mobile Safari/537.36',
|
||||
'jdltapp;iPhone;3.7.0;14.4;network/3g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.4;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148',
|
||||
'jdltapp;iPad;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPad6,3;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/231.11;pap/JA2020_3112531|3.7.0|IOS 14.4;apprpd/;psn/f5e7b7980fb50efc9c294ac38653c1584846c3db|305;usc/kong;jdv/0|kong|t_1000170135|tuiguang|notset|1613606450668|1613606450;umd/tuiguang;psq/2;ucp/t_1000170135;app_device/IOS;utr/notset;ref/JDLTRedPacketViewController;adk/;ads/;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;13.5;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone8,1;addressid/669949466;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/9.11;apprpd/;ref/JDLTSubMainPageViewController;psq/10;ads/;psn/500a795cb2abae60b877ee4a1930557a800bef1c|11;jdv/;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 13.5;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.3;network/3g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,4;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.47;apprpd/;ref/JDLTSubMainPageViewController;psq/8;ads/;psn/21631ed983b3e854a3154b0336413825ad0d6783|9;jdv/0|direct|-|none|-|1614150725100|1614225882;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.3;network/3g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,4;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.47;apprpd/;ref/JDLTSubMainPageViewController;psq/8;ads/;psn/21631ed983b3e854a3154b0336413825ad0d6783|9;jdv/0|direct|-|none|-|1614150725100|1614225882;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/3.15;apprpd/;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fchat%2Findex.action%3Fentry%3Djd_m_JiSuCommodity%26pid%3D7763388%26lng%3D118.159665%26lat%3D24.504633%26sid%3D31cddc2d58f6e36bf2c31c4e8a79767w%26un_area%3D16_1315_3486_0;psq/12;ads/;psn/c10e0db6f15dec57a94637365f4c3d43e05bbd48|4;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/3.15;apprpd/;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fchat%2Findex.action%3Fentry%3Djd_m_JiSuCommodity%26pid%3D7763388%26lng%3D118.159665%26lat%3D24.504633%26sid%3D31cddc2d58f6e36bf2c31c4e8a79767w%26un_area%3D16_1315_3486_0;psq/12;ads/;psn/c10e0db6f15dec57a94637365f4c3d43e05bbd48|4;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/3.15;apprpd/;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fchat%2Findex.action%3Fentry%3Djd_m_JiSuCommodity%26pid%3D7763388%26lng%3D118.159665%26lat%3D24.504633%26sid%3D31cddc2d58f6e36bf2c31c4e8a79767w%26un_area%3D16_1315_3486_0;psq/12;ads/;psn/c10e0db6f15dec57a94637365f4c3d43e05bbd48|4;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.4;;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,6;hasOCPay/0;appBuild/1017;supportBestPay/0;addressid/2813715704;pv/67.38;apprpd/MyJD_Main;ref/https%3A%2F%2Fh5.m.jd.com%2FbabelDiy%2FZeus%2F2ynE8QDtc2svd36VowmYWBzzDdK6%2Findex.html%3Flng%3D103.957532%26lat%3D30.626962%26sid%3D4fe8ef4283b24723a7bb30ee87c18b2w%26un_area%3D22_1930_49324_52512;psq/4;ads/;psn/5aef178f95931bdbbde849ea9e2fc62b18bc5829|127;jdv/0|direct|-|none|-|1612588090667|1613822580;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.3;;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/6.28;apprpd/;ref/JDLTRedPacketViewController;psq/3;ads/;psn/d7beab54ae7758fa896c193b49470204fbb8fce9|8;jdv/0|kong|t_1001707023_|jingfen|79ad0319fa4d47e38521a616d80bc4bd|1613800945610|1613824900;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.3;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/6.28;apprpd/;ref/JDLTRedPacketViewController;psq/3;ads/;psn/d7beab54ae7758fa896c193b49470204fbb8fce9|8;jdv/0|kong|t_1001707023_|jingfen|79ad0319fa4d47e38521a616d80bc4bd|1613800945610|1613824900;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.3;;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/6.28;apprpd/;ref/JDLTRedPacketViewController;psq/3;ads/;psn/d7beab54ae7758fa896c193b49470204fbb8fce9|8;jdv/0|kong|t_1001707023_|jingfen|79ad0319fa4d47e38521a616d80bc4bd|1613800945610|1613824900;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.3;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/6.28;apprpd/;ref/JDLTRedPacketViewController;psq/3;ads/;psn/d7beab54ae7758fa896c193b49470204fbb8fce9|8;jdv/0|kong|t_1001707023_|jingfen|79ad0319fa4d47e38521a616d80bc4bd|1613800945610|1613824900;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.3;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/6.28;apprpd/;ref/JDLTRedPacketViewController;psq/3;ads/;psn/d7beab54ae7758fa896c193b49470204fbb8fce9|8;jdv/0|kong|t_1001707023_|jingfen|79ad0319fa4d47e38521a616d80bc4bd|1613800945610|1613824900;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.4;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone12,1;addressid/3104834020;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.6;apprpd/;ref/JDLTSubMainPageViewController;psq/5;ads/;psn/c633e62b5a4ad0fdd93d9862bdcacfa8f3ecef63|6;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.3;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone10,1;addressid/1346909722;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/30.8;apprpd/;ref/JDLTSubMainPageViewController;psq/7;ads/;psn/40d4d4323eb3987226cae367d6b0d8be50f2c7b3|39;jdv/0|kong|t_1000252057_0|tuiguang|eba7648a0f4445aa9cfa6f35c6f36e15|1613995717959|1613995723;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.3;network/wifi;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone10,1;addressid/1346909722;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/30.8;apprpd/;ref/JDLTSubMainPageViewController;psq/7;ads/;psn/40d4d4323eb3987226cae367d6b0d8be50f2c7b3|39;jdv/0|kong|t_1000252057_0|tuiguang|eba7648a0f4445aa9cfa6f35c6f36e15|1613995717959|1613995723;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,6;addressid/138164461;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/7.8;apprpd/;ref/JDLTSubMainPageViewController;psq/7;ads/;psn/d40e5d4a33c100e8527f779557c347569b49c304|7;jdv/0|kong|t_1001226363_|jingfen|3bf5372cb9cd445bbb270b8bc9a34f00|1608439066693|1608439068;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,6;addressid/138164461;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/7.8;apprpd/;ref/JDLTSubMainPageViewController;psq/7;ads/;psn/d40e5d4a33c100e8527f779557c347569b49c304|7;jdv/0|kong|t_1001226363_|jingfen|3bf5372cb9cd445bbb270b8bc9a34f00|1608439066693|1608439068;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,6;addressid/138164461;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/7.8;apprpd/;ref/JDLTSubMainPageViewController;psq/7;ads/;psn/d40e5d4a33c100e8527f779557c347569b49c304|7;jdv/0|kong|t_1001226363_|jingfen|3bf5372cb9cd445bbb270b8bc9a34f00|1608439066693|1608439068;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;13.5;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,2;addressid/2237496805;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/13.6;apprpd/;ref/JDLTSubMainPageViewController;psq/5;ads/;psn/48e495dcf5dc398b4d46b27e9f15a2b427a154aa|15;jdv/0|direct|-|none|-|1613354874698|1613952828;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 13.5;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;android;3.7.0;10;network/wifi;model/ONEPLUS A6000;addressid/0;aid/3d3bbb25af44c59c;oaid/;osVer/29;appBuild/1436;psn/ECbc2EqmdSa7mDF1PS1GSrV/Tn7R1LS1|6;psq/8;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 10;osv/10;pv/2.67;jdv/0|direct|-|none|-|1613822479379|1613991194;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/oppo;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 10; ONEPLUS A6000 Build/QKQ1.190716.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045140 Mobile Safari/537.36',
|
||||
'jdltapp;android;3.7.0;8.1.0;network/wifi;model/16th Plus;addressid/0;aid/f909e5f2c464c7c6;oaid/;osVer/27;appBuild/1436;psn/c21YWvVr77Hn6 pOZfxXGY4TZrre1 UOL5hcPbCEDMo=|3;psq/10;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 8.1.0;osv/8.1.0;pv/2.15;jdv/;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/jsxdlyqj09;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 8.1.0; 16th Plus Build/OPM1.171019.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045514 Mobile Safari/537.36',
|
||||
'jdltapp;android;3.7.0;11;network/wifi;model/Mi 10 Pro;addressid/0;aid/14d7cbd934eb7dc1;oaid/335f198546eb3141;osVer/30;appBuild/1436;psn/ZcQh/Wov sNYfZ6JUjTIUBu28 KT0T3u|1;psq/24;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 11;osv/11;pv/1.24;jdv/;ref/com.jd.jdlite.lib.jdlitemessage.view.activity.MessageCenterMainActivity;partner/xiaomi;apprpd/MessageCenter_MessageMerge;eufv/1;Mozilla/5.0 (Linux; Android 11; Mi 10 Pro Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/88.0.4324.181 Mobile Safari/537.36',
|
||||
'jdltapp;android;3.7.0;10;network/wifi;model/MI 8;addressid/1969998059;aid/8566972dfd9a795d;oaid/4a8b773c3e307386;osVer/29;appBuild/1436;psn/PhYbUtCsCJo r 1b8hwxjnY8rEv5S8XC|383;psq/14;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 10;osv/10;pv/374.14;jdv/0|iosapp|t_335139774|liteshare|CopyURL|1609306590175|1609306596;ref/com.jd.jdlite.lib.jdlitemessage.view.activity.MessageCenterMainActivity;partner/jsxdlyqj09;apprpd/MessageCenter_MessageMerge;eufv/1;Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045140 Mobile Safari/537.36',
|
||||
'jdltapp;iPhone;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone8,4;addressid/1477231693;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/21.15;apprpd/MyJD_Main;ref/https%3A%2F%2Fgold.jd.com%2F%3Flng%3D0.000000%26lat%3D0.000000%26sid%3D4584eb84dc00141b0d58e000583a338w%26un_area%3D19_1607_3155_62114;psq/0;ads/;psn/2c822e59db319590266cc83b78c4a943783d0077|46;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,1;addressid/70390480;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.24;apprpd/MyJD_Main;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fafter%2Findex.action%3FcategoryId%3D600%26v%3D6%26entry%3Dm_self_jd;psq/4;ads/;psn/6d343c58764a908d4fa56609da4cb3a5cc1396d3|17;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,1;addressid/70390480;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.24;apprpd/MyJD_Main;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fafter%2Findex.action%3FcategoryId%3D600%26v%3D6%26entry%3Dm_self_jd;psq/4;ads/;psn/6d343c58764a908d4fa56609da4cb3a5cc1396d3|17;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.4;network/wifi;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,1;addressid/70390480;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.24;apprpd/MyJD_Main;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fafter%2Findex.action%3FcategoryId%3D600%26v%3D6%26entry%3Dm_self_jd;psq/4;ads/;psn/6d343c58764a908d4fa56609da4cb3a5cc1396d3|17;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,1;addressid/70390480;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.24;apprpd/MyJD_Main;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fafter%2Findex.action%3FcategoryId%3D600%26v%3D6%26entry%3Dm_self_jd;psq/4;ads/;psn/6d343c58764a908d4fa56609da4cb3a5cc1396d3|17;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPhone;3.7.0;14.4;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone12,3;hasOCPay/0;appBuild/1017;supportBestPay/0;addressid/;pv/3.49;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/7;ads/;psn/9e0e0ea9c6801dfd53f2e50ffaa7f84c7b40cd15|6;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
'jdltapp;iPad;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPad7,5;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.14;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/3;ads/;psn/956c074c769cd2eeab2e36fca24ad4c9e469751a|8;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',
|
||||
]
|
||||
/**
|
||||
* 生成随机数字
|
||||
|
||||
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`)
|
||||
}
|
||||
notify(array) {
|
||||
let text = [];
|
||||
let type = 0
|
||||
let text = '';
|
||||
for (let i of array) {
|
||||
text.push(`${i.user} -- ${i.msg}`)
|
||||
type = i.type
|
||||
text += `${i.user} -- ${i.msg}\n`
|
||||
}
|
||||
console.log(`\n=============================开始发送提醒消息=============================`)
|
||||
if (type == 1) {
|
||||
for (let i of text) {
|
||||
notify.sendNotify(this.name + "消息提醒", i)
|
||||
}
|
||||
} else {
|
||||
notify.sendNotify(this.name + "消息提醒", text.join('\n'))
|
||||
}
|
||||
notify.sendNotify(this.name + "消息提醒", text)
|
||||
}
|
||||
wait(t) {
|
||||
return new Promise(e => setTimeout(e, t))
|
||||
@ -131,20 +123,18 @@ class env {
|
||||
loads(str) {
|
||||
return JSON.parse(str)
|
||||
}
|
||||
notice(msg, type = 0) {
|
||||
notice(msg) {
|
||||
this.message.push({
|
||||
'index': this.index,
|
||||
'user': this.user,
|
||||
'msg': msg,
|
||||
type
|
||||
'msg': msg
|
||||
})
|
||||
}
|
||||
notices(msg, user, type = 0) {
|
||||
notices(msg, user, index = '') {
|
||||
this.message.push({
|
||||
'user': user,
|
||||
'msg': msg,
|
||||
// 'index': index,
|
||||
type
|
||||
'index': index
|
||||
})
|
||||
}
|
||||
urlparse(url) {
|
||||
|
||||
@ -8,9 +8,6 @@ function mainEval($) {
|
||||
}
|
||||
$.sleep=cookies['all'].length * 500
|
||||
taskCookie=cookies['all']
|
||||
if($.config[\`\${$.runfile}_limit\`]){
|
||||
taskCookie = cookies['all'].slice(0,parseInt($.config[\`\${$.runfile}_limit\`]))
|
||||
}
|
||||
jxAlgo = new common.jxAlgo();
|
||||
if ($.readme) {
|
||||
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 = [
|
||||
];
|
||||
module.exports = {
|
||||
cookie
|
||||
/*
|
||||
此文件为Node.js专用。其他用户请忽略
|
||||
*/
|
||||
//此处填写京东账号cookie。
|
||||
let CookieJDs = [
|
||||
'',//账号一ck,例:pt_key=XXX;pt_pin=XXX;
|
||||
'',//账号二ck,例:pt_key=XXX;pt_pin=XXX;如有更多,依次类推
|
||||
]
|
||||
// 判断环境变量里面是否有京东ck
|
||||
if (process.env.JD_COOKIE) {
|
||||
if (process.env.JD_COOKIE.indexOf('&') > -1) {
|
||||
CookieJDs = process.env.JD_COOKIE.split('&');
|
||||
} else if (process.env.JD_COOKIE.indexOf('\n') > -1) {
|
||||
CookieJDs = process.env.JD_COOKIE.split('\n');
|
||||
} else {
|
||||
CookieJDs = [process.env.JD_COOKIE];
|
||||
}
|
||||
}
|
||||
if (JSON.stringify(process.env).indexOf('GITHUB')>-1) {
|
||||
console.log(`请勿使用github action运行此脚本,无论你是从你自己的私库还是其他哪里拉取的源代码,都会导致我被封号\n`);
|
||||
!(async () => {
|
||||
await require('./sendNotify').sendNotify('提醒', `请勿使用github action、滥用github资源会封我仓库以及账号`)
|
||||
await process.exit(0);
|
||||
})()
|
||||
}
|
||||
CookieJDs = [...new Set(CookieJDs.filter(item => !!item))]
|
||||
console.log(`\n====================共${CookieJDs.length}个京东账号Cookie=================\n`);
|
||||
console.log(`============脚本执行时间:${new Date(new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000).toLocaleString('chinese',{hour12:false})}=============\n`)
|
||||
if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {};
|
||||
for (let i = 0; i < CookieJDs.length; i++) {
|
||||
if (!CookieJDs[i].match(/pt_pin=(.+?);/) || !CookieJDs[i].match(/pt_key=(.+?);/)) console.log(`\n提示:京东cookie 【${CookieJDs[i]}】填写不规范,可能会影响部分脚本正常使用。正确格式为: pt_key=xxx;pt_pin=xxx;(分号;不可少)\n`);
|
||||
const index = (i + 1 === 1) ? '' : (i + 1);
|
||||
exports['CookieJD' + index] = CookieJDs[i].trim();
|
||||
}
|
||||
console.log('>>>>>>>>>>>>>>Faker 提示:任务正常运行中>>>>>>>>>>>>>>>\n')
|
||||
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 desp 通知体
|
||||
* @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.
|
||||
const querystring = require('querystring');
|
||||
@ -117,7 +117,7 @@ let GOTIFY_PRIORITY = 0;
|
||||
* @param text 通知头
|
||||
* @param desp 通知体
|
||||
* @param params 某些推送通知方式点击弹窗可跳转, 例:{ url: 'https://abc.com' }
|
||||
* @param author 作者仓库等信息 例:`本通知 By:https://github.com/whyour/qinglong`
|
||||
* @param author 作者仓库等信息 例:`Faker提示:如有疑问,请进群https://t.me/Soucetalk`
|
||||
* @returns {Promise<unknown>}
|
||||
*/
|
||||
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 = {}
|
||||
|
||||
// 读取互助码
|
||||
shareCodeLogPath = `${process.env.QL_DIR}/log/.ShareCode/${nameConfig}.log`
|
||||
let shareCodeLogPath = `${process.env.QL_DIR}/log/.ShareCode/${nameConfig}.log`
|
||||
let fs = require('fs')
|
||||
if (fs.existsSync(shareCodeLogPath)) {
|
||||
// 因为faker2目前没有自带ini,改用已有的dotenv来解析
|
||||
@ -59,7 +59,7 @@ function SetShareCodesEnv(nameConfig = "", envName = "") {
|
||||
}
|
||||
|
||||
// 解析每个用户的互助码
|
||||
codes = {}
|
||||
let codes = {}
|
||||
Object.keys(rawCodeConfig).forEach(function (key) {
|
||||
if (key.startsWith(`My${nameConfig}`)) {
|
||||
codes[key] = rawCodeConfig[key]
|
||||
@ -97,5 +97,5 @@ let envName = process.env.ShareCodeEnvName
|
||||
if (nameConfig && envName) {
|
||||
SetShareCodesEnv(nameConfig, envName)
|
||||
} 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
|
||||
let FruitShareCodes = [
|
||||
'',//账号一的好友shareCode,不同好友中间用@符号隔开
|
||||
'',//账号二的好友shareCode,不同好友中间用@符号隔开
|
||||
'0a74407df5df4fa99672a037eec61f7e@dbb21614667246fabcfd9685b6f448f3@6fbd26cc27ac44d6a7fed34092453f77@61ff5c624949454aa88561f2cd721bf6@56db8e7bc5874668ba7d5195230d067a',//账号一的好友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
143
jd_bean_home.js
143
jd_bean_home.js
@ -2,23 +2,23 @@
|
||||
领京豆额外奖励&抢京豆
|
||||
脚本自带助力码,介意者可将 29行 helpAuthor 变量设置为 false
|
||||
活动入口:京东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个京东账号
|
||||
脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js
|
||||
============Quantumultx===============
|
||||
[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==============
|
||||
[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=================
|
||||
领京豆额外奖励 = 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('领京豆额外奖励');
|
||||
|
||||
@ -26,9 +26,10 @@ const notify = $.isNode() ? require('./sendNotify') : '';
|
||||
//Node.js用户请在jdCookie.js处填写京东ck;
|
||||
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
|
||||
let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送
|
||||
const helpAuthor = true; // 是否帮助作者助力,false打开通知推送,true关闭通知推送
|
||||
const helpAuthor = false; // 是否帮助作者助力,false打开通知推送,true关闭通知推送
|
||||
//IOS等用户直接用NobyDa的jd cookie
|
||||
let cookiesArr = [], cookie = '', uuid = '', message;
|
||||
$.outFlag = false
|
||||
if ($.isNode()) {
|
||||
Object.keys(jdCookieNode).forEach((item) => {
|
||||
cookiesArr.push(jdCookieNode[item])
|
||||
@ -41,12 +42,6 @@ if ($.isNode()) {
|
||||
const JD_API_HOST = 'https://api.m.jd.com/';
|
||||
!(async () => {
|
||||
$.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]) {
|
||||
$.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"});
|
||||
return;
|
||||
@ -71,51 +66,52 @@ const JD_API_HOST = 'https://api.m.jd.com/';
|
||||
continue
|
||||
}
|
||||
await jdBeanHome();
|
||||
await $.wait(parseInt(Math.random() * 5000 + 8000, 10))
|
||||
}
|
||||
}
|
||||
for (let i = 0; i < cookiesArr.length; i++) {
|
||||
$.index = i + 1;
|
||||
if (cookiesArr[i]) {
|
||||
cookie = cookiesArr[i];
|
||||
$.canHelp = true;
|
||||
$.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1])
|
||||
if ($.newShareCodes.length > 1) {
|
||||
console.log(`\n【抢京豆】 ${$.UserName} 去助力排名第一的cookie`);
|
||||
// let code = $.newShareCodes[(i + 1) % $.newShareCodes.length]
|
||||
// await help(code[0], code[1])
|
||||
let code = $.newShareCodes[0];
|
||||
if(code[2] && code[2] === $.UserName){
|
||||
//不助力自己
|
||||
} else {
|
||||
await help(code[0], code[1]);
|
||||
}
|
||||
}
|
||||
if (helpAuthor && $.authorCode && $.canHelp) {
|
||||
console.log(`\n【抢京豆】${$.UserName} 去帮助作者`)
|
||||
for (let code of $.authorCode) {
|
||||
const helpRes = await help(code.shareCode, code.groupCode);
|
||||
if (helpRes && helpRes['code'] === '0') {
|
||||
if (helpRes && helpRes.data && helpRes.data.respCode === 'SG209') {
|
||||
console.log(`${helpRes.data.helpToast}\n`);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
console.log(`助力异常:${JSON.stringify(helpRes)}\n`);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (let j = 1; j < $.newShareCodes.length && $.canHelp; j++) {
|
||||
let code = $.newShareCodes[j];
|
||||
if(code[2] && code[2] === $.UserName){
|
||||
//不助力自己
|
||||
} else {
|
||||
console.log(`【抢京豆】${$.UserName} 去助力账号 ${j + 1}`);
|
||||
await help(code[0], code[1]);
|
||||
await $.wait(2000);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// for (let i = 0; i < cookiesArr.length; i++) {
|
||||
// $.index = i + 1;
|
||||
// if (cookiesArr[i]) {
|
||||
// cookie = cookiesArr[i];
|
||||
// $.canHelp = true;
|
||||
// $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1])
|
||||
// if ($.newShareCodes.length > 1) {
|
||||
// console.log(`\n【抢京豆】 ${$.UserName} 去助力排名第一的cookie`);
|
||||
// // let code = $.newShareCodes[(i + 1) % $.newShareCodes.length]
|
||||
// // await help(code[0], code[1])
|
||||
// let code = $.newShareCodes[0];
|
||||
// if(code[2] && code[2] === $.UserName){
|
||||
// //不助力自己
|
||||
// } else {
|
||||
// await help(code[0], code[1]);
|
||||
// }
|
||||
// }
|
||||
// if (helpAuthor && $.authorCode && $.canHelp) {
|
||||
// console.log(`\n【抢京豆】${$.UserName} 去帮助作者`)
|
||||
// for (let code of $.authorCode) {
|
||||
// const helpRes = await help(code.shareCode, code.groupCode);
|
||||
// if (helpRes && helpRes['code'] === '0') {
|
||||
// if (helpRes && helpRes.data && helpRes.data.respCode === 'SG209') {
|
||||
// console.log(`${helpRes.data.helpToast}\n`);
|
||||
// break;
|
||||
// }
|
||||
// } else {
|
||||
// console.log(`助力异常:${JSON.stringify(helpRes)}\n`);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// for (let j = 1; j < $.newShareCodes.length && $.canHelp; j++) {
|
||||
// let code = $.newShareCodes[j];
|
||||
// if(code[2] && code[2] === $.UserName){
|
||||
// //不助力自己
|
||||
// } else {
|
||||
// console.log(`【抢京豆】${$.UserName} 去助力账号 ${j + 1}`);
|
||||
// await help(code[0], code[1]);
|
||||
// await $.wait(2000);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
})()
|
||||
.catch((e) => {
|
||||
$.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '')
|
||||
@ -132,9 +128,11 @@ async function jdBeanHome() {
|
||||
// await $.wait(1000)
|
||||
// if ($.doneState) break
|
||||
// }
|
||||
do {
|
||||
$.outFlag = false
|
||||
do {
|
||||
await doTask2()
|
||||
await $.wait(3000)
|
||||
if ($.outFlag) break
|
||||
await $.wait(5000)
|
||||
} while (!$.doneState)
|
||||
await $.wait(1000)
|
||||
await award("feeds")
|
||||
@ -144,20 +142,20 @@ async function jdBeanHome() {
|
||||
await getTaskList();
|
||||
await receiveJd2();
|
||||
|
||||
await morningGetBean()
|
||||
await $.wait(1000)
|
||||
//await morningGetBean()
|
||||
//await $.wait(1000)
|
||||
|
||||
await beanTaskList(1)
|
||||
await $.wait(1000)
|
||||
await $.wait(2000)
|
||||
await queryCouponInfo()
|
||||
$.doneState = false
|
||||
let num = 0
|
||||
do {
|
||||
await $.wait(2000)
|
||||
await $.wait(3000)
|
||||
await beanTaskList(2)
|
||||
num++
|
||||
} while (!$.doneState && num < 5)
|
||||
await $.wait(2000)
|
||||
await $.wait(3000)
|
||||
if ($.doneState) await beanTaskList(3)
|
||||
|
||||
await showMsg();
|
||||
@ -398,8 +396,9 @@ function doTask2() {
|
||||
$.post(taskUrl('beanHomeTask', body), (err, resp, data) => {
|
||||
try {
|
||||
if (err) {
|
||||
console.log(`${JSON.stringify(err)}`)
|
||||
console.log(`${$.name} API请求失败,请检查网路重试`)
|
||||
$.outFlag = true
|
||||
console.log(`${JSON.stringify(err)}`)
|
||||
console.log(`doTask2 API请求失败,请检查网路重试`)
|
||||
} else {
|
||||
if (safeGet(data)) {
|
||||
data = JSON.parse(data);
|
||||
@ -464,7 +463,7 @@ function getUserInfo() {
|
||||
try {
|
||||
if (err) {
|
||||
console.log(`${JSON.stringify(err)}`)
|
||||
console.log(`${$.name} API请求失败,请检查网路重试`)
|
||||
console.log(`getUserInfo API请求失败,请检查网路重试`)
|
||||
} else {
|
||||
if (safeGet(data)) {
|
||||
data = JSON.parse(data);
|
||||
@ -502,7 +501,7 @@ function hitGroup() {
|
||||
try {
|
||||
if (err) {
|
||||
console.log(`${JSON.stringify(err)}`)
|
||||
console.log(`${$.name} API请求失败,请检查网路重试`)
|
||||
console.log(`hitGroup API请求失败,请检查网路重试`)
|
||||
} else {
|
||||
if (safeGet(data)) {
|
||||
data = JSON.parse(data);
|
||||
@ -584,7 +583,7 @@ function getTaskList() {
|
||||
try {
|
||||
if (err) {
|
||||
console.log(`${JSON.stringify(err)}`)
|
||||
console.log(`${$.name} API请求失败,请检查网路重试`)
|
||||
console.log(`getTaskList API请求失败,请检查网路重试`)
|
||||
} else {
|
||||
if (safeGet(data)) {
|
||||
data = JSON.parse(data);
|
||||
@ -620,7 +619,7 @@ function receiveTask(itemId = "zddd", type = "3") {
|
||||
try {
|
||||
if (err) {
|
||||
console.log(`${JSON.stringify(err)}`)
|
||||
console.log(`${$.name} API请求失败,请检查网路重试`)
|
||||
console.log(`receiveTask API请求失败,请检查网路重试`)
|
||||
} else {
|
||||
if (safeGet(data)) {
|
||||
data = JSON.parse(data);
|
||||
@ -648,7 +647,8 @@ function award(source="home") {
|
||||
try {
|
||||
if (err) {
|
||||
console.log(`${JSON.stringify(err)}`)
|
||||
console.log(`${$.name} API请求失败,请检查网路重试`)
|
||||
console.log(`award API请求失败,请检查网路重试`)
|
||||
$.outFlag = true
|
||||
} else {
|
||||
if (safeGet(data)) {
|
||||
data = JSON.parse(data);
|
||||
@ -689,7 +689,8 @@ function receiveJd2() {
|
||||
try {
|
||||
if (err) {
|
||||
console.log(`${JSON.stringify(err)}`)
|
||||
console.log(`${$.name} API请求失败,请检查网路重试`)
|
||||
console.log(`receiveJd2 API请求失败,请检查网路重试`)
|
||||
$.outFlag = true
|
||||
} else {
|
||||
if (safeGet(data)) {
|
||||
data = JSON.parse(data);
|
||||
@ -780,7 +781,7 @@ function TotalBean() {
|
||||
try {
|
||||
if (err) {
|
||||
console.log(`${JSON.stringify(err)}`)
|
||||
console.log(`${$.name} API请求失败,请检查网路重试`)
|
||||
console.log(`TotalBean API请求失败,请检查网路重试`)
|
||||
} else {
|
||||
if (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 notify = $.isNode() ? require('./sendNotify') : '';
|
||||
//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"});
|
||||
return;
|
||||
}
|
||||
console.log(`\n正在查询今天所有账号的京豆收入......`);
|
||||
for (let i = 0; i < cookiesArr.length; i++) {
|
||||
if (cookiesArr[i]) {
|
||||
cookie = cookiesArr[i];
|
||||
@ -36,7 +46,7 @@ if ($.isNode()) {
|
||||
$.balance = 0;
|
||||
$.expiredBalance = 0;
|
||||
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"});
|
||||
|
||||
@ -51,8 +61,9 @@ if ($.isNode()) {
|
||||
}
|
||||
}
|
||||
allMessage += `\n今日全部账号收入:${allBean}个京豆 🐶\n`
|
||||
console.log(`${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) => {
|
||||
@ -64,7 +75,7 @@ if ($.isNode()) {
|
||||
async function showMsg() {
|
||||
if ($.errorMsg) return
|
||||
allMessage += `\n【账号${$.index}:${$.nickName || $.UserName} 京豆详情统计】\n\n`;
|
||||
allMessage += `今日收入:${$.todayIncomeBean}个京豆 🐶\n`
|
||||
allMessage += `今日收入总计:${$.todayIncomeBean}京豆 🐶\n`
|
||||
allBean = allBean + parseInt($.todayIncomeBean)
|
||||
for (let key of myMap.keys()) {
|
||||
allMessage += key + ' ---> ' +myMap.get(key)+'京豆 🐶\n'
|
||||
|
||||
2349
jd_bean_sign.js
2349
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
|
||||
更新时间:2021-12-03
|
||||
来源 Dylan
|
||||
活动入口:京东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 notify = $.isNode() ? require('./sendNotify') : '';
|
||||
console.log('已废弃,能不能用随缘!!!')
|
||||
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
|
||||
const WebSocket = require('ws');
|
||||
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 = '';
|
||||
message = '';
|
||||
$.token = '';
|
||||
await TotalBean();
|
||||
//await TotalBean();
|
||||
console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`);
|
||||
if (!$.isLogin) {
|
||||
$.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/`, {"open-url": "https://bean.m.jd.com/"});
|
||||
@ -61,7 +61,9 @@ const JD_API_HOST = 'https://api.m.jd.com/client.action';
|
||||
continue
|
||||
}
|
||||
await accountCheck();
|
||||
await $.wait(10000)
|
||||
while (!$.hasDone) {
|
||||
await $.wait(3000)
|
||||
}
|
||||
if ($.accountCheck) {
|
||||
await jdBeauty();
|
||||
}
|
||||
@ -80,7 +82,7 @@ const JD_API_HOST = 'https://api.m.jd.com/client.action';
|
||||
|
||||
async function accountCheck() {
|
||||
$.hasDone = false;
|
||||
console.log(`***检测账号是否黑号***`);
|
||||
//console.log(`***检测账号是否黑号***`);
|
||||
await getIsvToken()
|
||||
await $.wait(10000)
|
||||
await getIsvToken2()
|
||||
@ -100,9 +102,9 @@ async function accountCheck() {
|
||||
client.onopen = async () => {
|
||||
console.log(`美容研究院服务器连接成功`);
|
||||
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"}}`);
|
||||
await $.wait(20000);
|
||||
await $.wait(10000);
|
||||
};
|
||||
client.onmessage = async function (e) {
|
||||
if (e.data !== 'pong' && e.data && safeGet(e.data)) {
|
||||
@ -141,6 +143,7 @@ async function jdBeauty() {
|
||||
async function mr() {
|
||||
$.coins = 0
|
||||
let positionList = ['b1', 'h1', 's1', 'b2', 'h2', 's2']
|
||||
let positionList2 = ['b2', 'h2', 's2']
|
||||
$.tokens = []
|
||||
$.pos = []
|
||||
$.helpInfo = []
|
||||
@ -162,18 +165,24 @@ async function mr() {
|
||||
await $.wait(10000);
|
||||
}
|
||||
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"}}`)
|
||||
await $.wait(20000);
|
||||
await $.wait(10000);
|
||||
// 获得正在生产的商品信息
|
||||
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"}}`)
|
||||
await $.wait(20000);
|
||||
await $.wait(10000);
|
||||
// 获得原料生产列表
|
||||
for (let pos of positionList) {
|
||||
client.send(`{"msg":{"type":"action","args":{"position":"${pos}"},"action":"produce_position_info_v2"}}`)
|
||||
await $.wait(20000);
|
||||
await $.wait(10000);
|
||||
}
|
||||
console.log(`\n========日常任务相关========`)
|
||||
client.send(`{"msg":{"type":"action","args":{},"action":"check_up"}}`)
|
||||
@ -187,7 +196,7 @@ async function mr() {
|
||||
await $.wait(50000);
|
||||
//最后做时间最久的日常任务
|
||||
client.send(`{"msg":{"type":"action","args":{},"action":"shop_products"}}`)
|
||||
await $.wait(20000);
|
||||
await $.wait(10000);
|
||||
}
|
||||
};
|
||||
client.onclose = () => {
|
||||
@ -196,7 +205,10 @@ async function mr() {
|
||||
$.init = true;
|
||||
$.hasDone = true;
|
||||
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) {
|
||||
@ -211,9 +223,9 @@ async function mr() {
|
||||
// 去签到
|
||||
console.log(`去做签到任务`)
|
||||
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}}}`)
|
||||
await $.wait(20000);
|
||||
await $.wait(10000);
|
||||
}
|
||||
break
|
||||
case "get_user":
|
||||
@ -223,7 +235,7 @@ async function mr() {
|
||||
console.log(`去做新手任务`)
|
||||
for (let i = $.userInfo.step; i < 15; ++i) {
|
||||
client.send(`{"msg":{"type":"action","args":{},"action":"newcomer_update"}}`)
|
||||
await $.wait(20000);
|
||||
await $.wait(10000);
|
||||
}
|
||||
} else
|
||||
$.init = true;
|
||||
@ -276,11 +288,14 @@ async function mr() {
|
||||
}
|
||||
await $.wait(10000);
|
||||
}
|
||||
for (let i = $.taskState.meetingplace_view; i < $.taskState.mettingplace_count; ++i) {
|
||||
console.log(`去做第${i + 1}次浏览会场任务`)
|
||||
client.send(`{"msg":{"type":"action","args":{"source":1},"action":"meetingplace_view"}}`)
|
||||
await $.wait(10000);
|
||||
if ($.taskState.meetingplace_view.length <= vo.data.meetingplaces.length) {
|
||||
for (let vc of vo.data.meetingplaces) {
|
||||
console.log(`去做第${vc.name}浏览会场任务`)
|
||||
client.send(`{"msg":{"type":"action","args":{"source":1,"meetingplace_id":${vc.id}},"action":"meetingplace_view"}}`)
|
||||
await $.wait(2500)
|
||||
}
|
||||
}
|
||||
|
||||
if ($.taskState.today_answered === 0) {
|
||||
console.log(`去做每日问答任务`)
|
||||
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"}}`)
|
||||
await $.wait(5000);
|
||||
} else {
|
||||
ma = $.material.base[1]['items'][positionList.indexOf(vo.data.position)]
|
||||
ma = $.material.base[1]['items'][positionList2.indexOf(vo.data.position)]
|
||||
if (ma) {
|
||||
console.log(`else去生产${ma.name}`)
|
||||
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":
|
||||
let need_material = []
|
||||
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(`========可生产商品信息========`)
|
||||
for (let product of $.products) {
|
||||
let num = Infinity
|
||||
@ -426,6 +441,7 @@ async function mr() {
|
||||
console.log(`【${product.name}】可生产份数大于0,去生产`)
|
||||
//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);
|
||||
} else {
|
||||
console.log(msg)
|
||||
@ -489,9 +505,9 @@ async function mr() {
|
||||
for (let benefit of vo.data) {
|
||||
if (benefit.type === 1) { //type 1 是京豆
|
||||
//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);
|
||||
if ($timenum > 10) $timenum = 10;
|
||||
if ($timenum > 5) $timenum = 5;
|
||||
console.log(`\n可兑换${$timenum}次京豆:`)
|
||||
for (let i = 0; i < $timenum; i++){
|
||||
client.send(`{"msg":{"type":"action","args":{"benefit_id":${benefit.id}},"action":"to_exchange"}}`);
|
||||
@ -513,7 +529,7 @@ async function mr() {
|
||||
break
|
||||
case "to_exchange":
|
||||
if(oc(() => vo.data.coins)){
|
||||
console.log(`兑换${vo.data.coins/-1000}京豆成功`)
|
||||
console.log(`兑换${vo.data.coins/-10000}京豆成功`)
|
||||
}else{
|
||||
console.log(`兑换京豆失败`)
|
||||
}
|
||||
@ -521,15 +537,15 @@ async function mr() {
|
||||
case "get_produce_material":
|
||||
$.material = vo.data
|
||||
break
|
||||
case "to_employee":
|
||||
console.log(`雇佣助力码【${oc(() => vo.data.token)}】`)
|
||||
if(oc(() => vo.data.token)){
|
||||
$.tokens.push(vo.data.token)
|
||||
}else{
|
||||
console.log(`not exist:${oc(() => vo.data)}`)
|
||||
}
|
||||
break
|
||||
case "employee":
|
||||
//case "to_employee":
|
||||
// console.log(`雇佣助力码【${oc(() => vo.data.token)}】`)
|
||||
// if(oc(() => vo.data.token)){
|
||||
// $.tokens.push(vo.data.token)
|
||||
// }else{
|
||||
// console.log(`not exist:${oc(() => vo.data)}`)
|
||||
// }
|
||||
// break
|
||||
case "employee_v2":
|
||||
console.log(`${vo.msg}`)
|
||||
break
|
||||
}
|
||||
@ -559,7 +575,7 @@ function getIsvToken() {
|
||||
if (safeGet(data)) {
|
||||
data = JSON.parse(data);
|
||||
$.isvToken = data['tokenKey'];
|
||||
console.log(`isvToken:${$.isvToken}`);
|
||||
//console.log(`isvToken:${$.isvToken}`);
|
||||
}
|
||||
}
|
||||
} 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 = {
|
||||
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: {
|
||||
'Host': 'api.m.jd.com',
|
||||
'accept': '*/*',
|
||||
'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',
|
||||
'content-type': 'application/x-www-form-urlencoded',
|
||||
//'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6',
|
||||
//'content-type': 'application/x-www-form-urlencoded',
|
||||
'Cookie': cookie
|
||||
}
|
||||
}
|
||||
|
||||
return new Promise(resolve => {
|
||||
$.post(config, async (err, resp, data) => {
|
||||
try {
|
||||
@ -594,7 +616,7 @@ function getIsvToken2() {
|
||||
if (safeGet(data)) {
|
||||
data = JSON.parse(data);
|
||||
$.token2 = data['token']
|
||||
console.log(`token2:${$.token2}`);
|
||||
//console.log(`token2:${$.token2}`);
|
||||
}
|
||||
}
|
||||
} 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() {
|
||||
let config = {
|
||||
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: {
|
||||
'Host': 'xinruimz-isv.isvjcloud.com',
|
||||
'Accept': 'application/x.jd-school-island.v1+json',
|
||||
@ -620,7 +667,7 @@ function getToken() {
|
||||
'user-agent': UA,
|
||||
'Referer': 'https://xinruimz-isv.isvjcloud.com/logined_jd/',
|
||||
'Authorization': 'Bearer undefined',
|
||||
'Cookie': `IsvToken=${$.isvToken};`
|
||||
'Cookie': `IsvToken=${$.token2};`
|
||||
}
|
||||
}
|
||||
return new Promise(resolve => {
|
||||
@ -633,7 +680,7 @@ function getToken() {
|
||||
if (safeGet(data)) {
|
||||
data = JSON.parse(data);
|
||||
$.token = data.access_token
|
||||
console.log(`$.token ${$.token}`)
|
||||
//console.log(`$.token ${$.token}`)
|
||||
}
|
||||
}
|
||||
} 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
File diff suppressed because one or more lines are too long
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===============
|
||||
[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============
|
||||
[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=============
|
||||
财富岛兑换红包 = 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('财富岛兑换红包');
|
||||
CryptoScripts()
|
||||
|
||||
@ -38,7 +38,6 @@ $.result = [];
|
||||
$.shareCodes = [];
|
||||
let cookiesArr = [], cookie = '', token = '';
|
||||
let UA, UAInfo = {};
|
||||
let nowTimes;
|
||||
const randomCount = $.isNode() ? 20 : 3;
|
||||
$.appId = "92a36";
|
||||
if ($.isNode()) {
|
||||
@ -84,12 +83,12 @@ if ($.isNode()) {
|
||||
await $.wait(2000);
|
||||
}
|
||||
}
|
||||
// let res = await getAuthorShareCode('https://raw.githubusercontent.com/Aaron-lv/updateTeam/master/shareCodes/cfd.json')
|
||||
// if (!res) {
|
||||
// $.http.get({url: 'https://purge.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/cfd.json'}).then((resp) => {}).catch((e) => console.log('刷新CDN异常', e));
|
||||
// await $.wait(1000)
|
||||
// res = await getAuthorShareCode('https://cdn.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/cfd.json')
|
||||
// }
|
||||
let res = await getAuthorShareCode('https://raw.githubusercontent.com/Aaron-lv/updateTeam/master/shareCodes/cfd.json')
|
||||
if (!res) {
|
||||
$.http.get({url: 'https://purge.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/cfd.json'}).then((resp) => {}).catch((e) => console.log('刷新CDN异常', e));
|
||||
await $.wait(1000)
|
||||
res = await getAuthorShareCode('https://cdn.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/cfd.json')
|
||||
}
|
||||
$.strMyShareIds = [...(res && res.shareId || [])]
|
||||
await shareCodesFormat()
|
||||
for (let i = 0; i < cookiesArr.length; i++) {
|
||||
@ -121,7 +120,6 @@ if ($.isNode()) {
|
||||
|
||||
async function cfd() {
|
||||
try {
|
||||
nowTimes = new Date(new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000)
|
||||
let beginInfo = await getUserInfo();
|
||||
if (beginInfo.LeadInfo.dwLeadType === 2) {
|
||||
console.log(`还未开通活动,尝试初始化`)
|
||||
@ -136,6 +134,10 @@ async function cfd() {
|
||||
}
|
||||
}
|
||||
|
||||
if (!beginInfo.MarkList.daily_task_win) {
|
||||
await setMark()
|
||||
}
|
||||
|
||||
//抽奖
|
||||
await $.wait(2000)
|
||||
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) {
|
||||
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 {
|
||||
if (err) {
|
||||
console.log(`${JSON.stringify(err)}`)
|
||||
@ -484,6 +505,7 @@ function getUserInfo(showInvite = true) {
|
||||
dwLandLvl,
|
||||
LeadInfo = {},
|
||||
Business = {},
|
||||
MarkList = {}
|
||||
} = data;
|
||||
if (showInvite) {
|
||||
console.log(`获取用户信息:${sErrMsg}\n${$.showLog ? data : ""}`);
|
||||
@ -501,12 +523,14 @@ function getUserInfo(showInvite = true) {
|
||||
strMyShareId,
|
||||
dwLandLvl,
|
||||
LeadInfo,
|
||||
MarkList
|
||||
};
|
||||
resolve({
|
||||
ddwRichBalance,
|
||||
ddwCoinBalance,
|
||||
strMyShareId,
|
||||
LeadInfo,
|
||||
MarkList
|
||||
});
|
||||
}
|
||||
} catch (e) {
|
||||
@ -601,7 +625,7 @@ function taskUrl(function_path, body = '', dwEnv = 7) {
|
||||
"User-Agent": UA,
|
||||
"Accept-Language": "zh-CN,zh-Hans;q=0.9",
|
||||
"Referer": "https://st.jingxi.com/",
|
||||
"Cookie": cookie
|
||||
"Cookie": cookie + "cid=4"
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -641,7 +665,7 @@ function showMsg() {
|
||||
|
||||
function readShareCode() {
|
||||
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 {
|
||||
if (err) {
|
||||
console.log(JSON.stringify(err))
|
||||
@ -658,7 +682,7 @@ function readShareCode() {
|
||||
resolve(data);
|
||||
}
|
||||
})
|
||||
await $.wait(10000);
|
||||
await $.wait(30 * 1000);
|
||||
resolve()
|
||||
})
|
||||
}
|
||||
@ -688,7 +712,7 @@ function TotalBean() {
|
||||
"User-Agent": "ScriptableWidgetExtension/185 CFNetwork/1312 Darwin/21.0.0",
|
||||
"Accept-Language": "zh-CN,zh-Hans;q=0.9",
|
||||
"Accept-Encoding": "gzip, deflate, br",
|
||||
"Cookie": cookie
|
||||
"Cookie": cookie + "cid=4"
|
||||
}
|
||||
}
|
||||
$.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
252
jd_dpqd.js
252
jd_dpqd.js
File diff suppressed because one or more lines are too long
@ -108,7 +108,7 @@ if ($.isNode()) {
|
||||
}
|
||||
let res = [];
|
||||
if(helpFlag){
|
||||
res = await getAuthorShareCode('');
|
||||
res = await getAuthorShareCode('https://raw.githubusercontent.com/star261/jd/main/code/dreamFactory_tuan.json');
|
||||
if(!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