This commit is contained in:
Faker 2024-10-21 16:07:49 +08:00
parent 5c5604ce27
commit abb1a9794c
11 changed files with 4090 additions and 3522 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

18
jd_dplh1020.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

1419
jd_try.js

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,44 +1,46 @@
function setBaseCookie() { function setBaseCookie() {
var cookie = []; var cookie = [];
function genUuid() { function genUuid() {
return new Date().getTime() + "" + parseInt(2147483647 * Math.random()); return new Date().getTime() + '' + parseInt(2147483647 * Math.random());
}
function setCookie(e, t, i) {
if (e) {
var n = '';
if (i) {
var a = new Date();
a.setTime(a.getTime() + i), (n = ';expires=' + a.toGMTString());
}
document.cookie = e + '=' + t + n + ';path=/;domain=jd.com;';
} }
}
function setCookie(e, t, i) { function setJdv(e, t) {
if (e) { var i = isPrey(10) && (!e || e.length > 400) ? t + '|direct|-|none|-|' + new Date().getTime() : e;
var n = ""; setCookie('__jdv', i, 1296000000);
if (i) { }
var a = new Date;
a.setTime(a.getTime() + i),
n = ";expires=" + a.toGMTString()
}
document.cookie = e + "=" + t + n + ";path=/;domain=jd.com;";
}
}
function setJdv(e, t) { function isPrey(e) {
var i = isPrey(10) && (!e || e.length > 400) ? t + "|direct|-|none|-|" + new Date().getTime() : e; if (e >= 100) return !0;
setCookie("__jdv", i, 1296000000); var t = uuid,
} r = t.substr(t.length - 2);
return !!r && 1 * r < e;
}
function isPrey(e) { var r = 122270672,
if (e >= 100) return !0; i = genUuid(),
var t = uuid, r = t.substr(t.length - 2); s = parseInt(new Date().getTime() / 1e3);
return !!r && 1 * r < e; var uuid = i;
}
var r = 122270672, i = genUuid(), s = parseInt(new Date().getTime() / 1e3); setCookie('__jda', [r, i, s, s, s, 1].join('.'), 15552000000);
var uuid = i; setCookie('__jdb', [r, 1, i + '|' + 1, s].join('.'), 1800000);
var j = encodeURIComponent([r, 'direct', '-', 'none', '-', new Date().getTime()].join('|'));
setJdv(j, r);
setCookie('__jdc', r);
setCookie('mba_muid', encodeURI(i));
setCookie("__jda", [r, i, s, s, s, 1].join("."), 15552000000); return cookie.join('');
setCookie("__jdb", [r, 1, i + "|" + 1, s].join("."), 1800000);
var j = encodeURIComponent([r, "direct", "-", "none", "-", new Date().getTime()].join("|"));
setJdv(j, r);
setCookie("__jdc", r);
setCookie("mba_muid", encodeURI(i));
return cookie.join('');
} }
module.exports.setBaseCookie = setBaseCookie module.exports.setBaseCookie = setBaseCookie;

File diff suppressed because it is too large Load Diff

284
utils/jsToken.js Normal file
View File

@ -0,0 +1,284 @@
var axios = require('axios');
var qs = require('qs');
function TDEncrypt(l) {
l = JSON.stringify(l);
l = encodeURIComponent(l);
var k = '',
f = 0;
do {
var h = l.charCodeAt(f++);
var d = l.charCodeAt(f++);
var a = l.charCodeAt(f++);
var b = h >> 2;
h = ((h & 3) << 4) | (d >> 4);
var e = ((d & 15) << 2) | (a >> 6);
var c = a & 63;
isNaN(d) ? (e = c = 64) : isNaN(a) && (c = 64);
k =
k +
'23IL<N01c7KvwZO56RSTAfghiFyzWJqVabGH4PQdopUrsCuX*xeBjkltDEmn89.-'.charAt(b) +
'23IL<N01c7KvwZO56RSTAfghiFyzWJqVabGH4PQdopUrsCuX*xeBjkltDEmn89.-'.charAt(h) +
'23IL<N01c7KvwZO56RSTAfghiFyzWJqVabGH4PQdopUrsCuX*xeBjkltDEmn89.-'.charAt(e) +
'23IL<N01c7KvwZO56RSTAfghiFyzWJqVabGH4PQdopUrsCuX*xeBjkltDEmn89.-'.charAt(c);
} while (f < l.length);
return k + '/';
}
function getAppVersionFromUserAgent(userAgent) {
const mozillaIndex = userAgent.indexOf('Mozilla/');
if (mozillaIndex !== -1) {
return userAgent.substring(mozillaIndex + 8);
}
return userAgent;
}
function getCurrentPageUrl(inputUrl) {
let l = inputUrl.startsWith('https:') ? 'https://' : 'http://';
let d = '';
try {
const queryIndex = inputUrl.indexOf('?');
if (queryIndex > 0) {
inputUrl = inputUrl.substring(0, queryIndex);
}
d = inputUrl.substring(l.length);
} catch (error) {
console.error('Error parsing URL:', error);
}
return d;
}
async function getJsToken(
userAgent = 'jdapp;android;11.2.8;;;Mozilla/5.0 (Linux; Android 10; ONEPLUS A5010 Build/QKQ1.191014.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36',
url = 'https://plus.m.jd.com/',
bizId = 'JD-PLUS',
) {
const d = TDEncrypt({
ts: { deviceTime: Date.now(), deviceEndTime: Date.now() + 10 },
ca: {
tdHash: '5b7096a993d442aef38ceb90cce4b485',
contextName: 'webgl,experimental-webgl',
webglversion: 'WebGL 1.0 (OpenGL ES 2.0 Chromium)',
shadingLV: 'WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium)',
vendor: 'WebKit',
renderer: 'WebKit WebGL',
extensions: [
'ANGLE_instanced_arrays',
'EXT_blend_minmax',
'EXT_clip_control',
'EXT_color_buffer_half_float',
'EXT_depth_clamp',
'EXT_disjoint_timer_query',
'EXT_float_blend',
'EXT_frag_depth',
'EXT_polygon_offset_clamp',
'EXT_shader_texture_lod',
'EXT_texture_compression_bptc',
'EXT_texture_compression_rgtc',
'EXT_texture_filter_anisotropic',
'EXT_texture_mirror_clamp_to_edge',
'EXT_sRGB',
'KHR_parallel_shader_compile',
'OES_element_index_uint',
'OES_fbo_render_mipmap',
'OES_standard_derivatives',
'OES_texture_float',
'OES_texture_float_linear',
'OES_texture_half_float',
'OES_texture_half_float_linear',
'OES_vertex_array_object',
'WEBGL_blend_func_extended',
'WEBGL_color_buffer_float',
'WEBGL_compressed_texture_s3tc',
'WEBGL_compressed_texture_s3tc_srgb',
'WEBGL_debug_renderer_info',
'WEBGL_debug_shaders',
'WEBGL_depth_texture',
'WEBGL_draw_buffers',
'WEBGL_lose_context',
'WEBGL_multi_draw',
'WEBGL_polygon_mode',
],
wuv: 'Google Inc. (Intel)',
wur: 'ANGLE (Intel, Intel(R) UHD Graphics 730 (0x00004C8B) Direct3D11 vs_5_0 ps_5_0, D3D11)',
},
m: { compatMode: 'CSS1Compat' },
n: {
vendorSub: '',
productSub: '20030107',
vendor: 'Google Inc.',
maxTouchPoints: 1,
pdfViewerEnabled: false,
hardwareConcurrency: 12,
cookieEnabled: true,
appCodeName: 'Mozilla',
appName: 'Netscape',
appVersion: getAppVersionFromUserAgent(userAgent),
platform: 'Win32',
product: 'Gecko',
userAgent: userAgent,
language: 'zh-CN',
onLine: true,
webdriver: false,
javaEnabled: false,
deprecatedRunAdAuctionEnforcesKAnonymity: true,
deviceMemory: 8,
enumerationOrder: [
'vendorSub',
'productSub',
'vendor',
'maxTouchPoints',
'scheduling',
'userActivation',
'doNotTrack',
'geolocation',
'connection',
'plugins',
'mimeTypes',
'pdfViewerEnabled',
'webkitTemporaryStorage',
'webkitPersistentStorage',
'windowControlsOverlay',
'hardwareConcurrency',
'cookieEnabled',
'appCodeName',
'appName',
'appVersion',
'platform',
'product',
'userAgent',
'language',
'languages',
'onLine',
'webdriver',
'getGamepads',
'javaEnabled',
'sendBeacon',
'vibrate',
'deprecatedRunAdAuctionEnforcesKAnonymity',
'protectedAudience',
'bluetooth',
'storageBuckets',
'clipboard',
'credentials',
'keyboard',
'managed',
'mediaDevices',
'storage',
'serviceWorker',
'virtualKeyboard',
'wakeLock',
'deviceMemory',
'userAgentData',
'login',
'ink',
'mediaCapabilities',
'hid',
'locks',
'gpu',
'mediaSession',
'permissions',
'presentation',
'usb',
'xr',
'serial',
'adAuctionComponents',
'runAdAuction',
'canLoadAdAuctionFencedFrame',
'canShare',
'share',
'clearAppBadge',
'getBattery',
'getUserMedia',
'requestMIDIAccess',
'requestMediaKeySystemAccess',
'setAppBadge',
'webkitGetUserMedia',
'clearOriginJoinedAdInterestGroups',
'createAuctionNonce',
'joinAdInterestGroup',
'leaveAdInterestGroup',
'updateAdInterestGroups',
'deprecatedReplaceInURN',
'deprecatedURNToURL',
'getInstalledRelatedApps',
'registerProtocolHandler',
'unregisterProtocolHandler',
],
},
p: [],
w: { devicePixelRatio: 4, screenTop: 0, screenLeft: 0 },
s: { availHeight: 740, availWidth: 360, colorDepth: 24, height: 740, width: 360, pixelDepth: 24 },
sc: {
ActiveBorder: 'rgb(0, 0, 0)',
ActiveCaption: 'rgb(0, 0, 0)',
AppWorkspace: 'rgb(255, 255, 255)',
Background: 'rgb(255, 255, 255)',
ButtonFace: 'rgb(240, 240, 240)',
ButtonHighlight: 'rgb(240, 240, 240)',
ButtonShadow: 'rgb(240, 240, 240)',
ButtonText: 'rgb(0, 0, 0)',
CaptionText: 'rgb(0, 0, 0)',
GrayText: 'rgb(109, 109, 109)',
Highlight: 'rgba(0, 86, 205, 0.8)',
HighlightText: 'rgb(255, 255, 255)',
InactiveBorder: 'rgb(0, 0, 0)',
InactiveCaption: 'rgb(255, 255, 255)',
InactiveCaptionText: 'rgb(128, 128, 128)',
InfoBackground: 'rgb(255, 255, 255)',
InfoText: 'rgb(0, 0, 0)',
Menu: 'rgb(255, 255, 255)',
MenuText: 'rgb(0, 0, 0)',
Scrollbar: 'rgb(255, 255, 255)',
ThreeDDarkShadow: 'rgb(0, 0, 0)',
ThreeDFace: 'rgb(240, 240, 240)',
ThreeDHighlight: 'rgb(0, 0, 0)',
ThreeDLightShadow: 'rgb(0, 0, 0)',
ThreeDShadow: 'rgb(0, 0, 0)',
Window: 'rgb(255, 255, 255)',
WindowFrame: 'rgb(0, 0, 0)',
WindowText: 'rgb(0, 0, 0)',
},
ss: { cookie: true, localStorage: true, sessionStorage: true, globalStorage: false, indexedDB: true },
tz: -480,
lil: '',
wil: '',
});
const a = TDEncrypt({
pin: '',
oid: '',
bizId: bizId,
fc: '',
mode: 'strict',
p: 's',
fp: 'b772d9635edebaa1a47c5a1fd086186a',
ctype: 1,
v: '3.2.1.0',
f: '3',
o: getCurrentPageUrl(url),
qs: '',
qi: '',
});
let { status, data } = await axios({
method: 'POST',
url: `https://jra.jd.com/jsTk.do?a=${encodeURIComponent(a)}`,
headers: {
'User-Agent': userAgent,
'content-type': 'application/x-www-form-urlencoded;charset=UTF-8',
},
data: qs.stringify({
d: d,
}),
});
if (status === 200 && data.data) {
return data.data;
} else return null;
}
module.exports.getJsToken = getJsToken;

File diff suppressed because it is too large Load Diff