mirror of
https://github.com/shufflewzc/faker2.git
synced 2025-04-23 10:58:44 +08:00
update
This commit is contained in:
parent
4d9664b573
commit
2baa1b095a
@ -5,10 +5,7 @@ import {existsSync, readFileSync} from "fs"
|
|||||||
import {sendNotify} from './sendNotify'
|
import {sendNotify} from './sendNotify'
|
||||||
|
|
||||||
dotenv.config()
|
dotenv.config()
|
||||||
|
const USER_AGENTS_ARR: string[] = [
|
||||||
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;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;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;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",
|
||||||
@ -47,20 +44,12 @@ const USER_AGENTS: Array<string> = [
|
|||||||
"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;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) {
|
function getRandomNumberByRange(start: number, end: number) {
|
||||||
end <= start && (end = start + 100)
|
end <= start && (end = start + 100)
|
||||||
return Math.floor(Math.random() * (end - start) + start)
|
return Math.floor(Math.random() * (end - start) + start)
|
||||||
}
|
}
|
||||||
|
|
||||||
let USER_AGENT = USER_AGENTS[getRandomNumberByRange(0, USER_AGENTS.length)]
|
let USER_AGENT = USER_AGENTS_ARR[getRandomNumberByRange(0, USER_AGENTS_ARR.length)]
|
||||||
|
|
||||||
async function getBeanShareCode(cookie: string) {
|
async function getBeanShareCode(cookie: string) {
|
||||||
let {data}: any = await axios.post('https://api.m.jd.com/client.action',
|
let {data}: any = await axios.post('https://api.m.jd.com/client.action',
|
||||||
@ -98,99 +87,31 @@ async function getFarmShareCode(cookie: string) {
|
|||||||
return ''
|
return ''
|
||||||
}
|
}
|
||||||
|
|
||||||
async function requireConfig(check: boolean = false): Promise<string[]> {
|
async function getCookie(): Promise<string[]> {
|
||||||
let cookiesArr: string[] = []
|
let cookiesArr: string[] = []
|
||||||
const jdCookieNode = require('./jdCookie.js')
|
const jdCookieNode = require('./jdCookie.js')
|
||||||
let keys: string[] = Object.keys(jdCookieNode)
|
for (let keys of Object.keys(jdCookieNode)) {
|
||||||
for (let i = 0; i < keys.length; i++) {
|
cookiesArr.push(jdCookieNode[keys])
|
||||||
let cookie = jdCookieNode[keys[i]]
|
}
|
||||||
if (!check) {
|
let ptpin_temp: string[] = [], uniqueCookieArr: string[] = []
|
||||||
cookiesArr.push(cookie)
|
for (let cookie of cookiesArr) {
|
||||||
} else {
|
let UserName: string = decodeURIComponent(cookie.match(/pt_pin=([^;]*)/)![1])
|
||||||
if (await checkCookie(cookie)) {
|
if (!ptpin_temp.includes(UserName)) {
|
||||||
cookiesArr.push(cookie)
|
ptpin_temp.push(UserName)
|
||||||
} else {
|
uniqueCookieArr.push(cookie)
|
||||||
let username = decodeURIComponent(jdCookieNode[keys[i]].match(/pt_pin=([^;]*)/)![1])
|
|
||||||
console.log('Cookie失效', username)
|
|
||||||
await sendNotify('Cookie失效', '【京东账号】' + username)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
cookiesArr = uniqueCookieArr
|
||||||
console.log(`共${cookiesArr.length}个京东账号\n`)
|
console.log(`共${cookiesArr.length}个京东账号\n`)
|
||||||
return cookiesArr
|
return cookiesArr
|
||||||
}
|
}
|
||||||
|
|
||||||
async function checkCookie(cookie: string) {
|
function wait(ms: number) {
|
||||||
await wait(3000)
|
|
||||||
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 => {
|
return new Promise(resolve => {
|
||||||
setTimeout(resolve, timeout)
|
setTimeout(resolve, ms)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
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 getJxToken(cookie: string, phoneId: string = '') {
|
||||||
function generateStr(input: number) {
|
function generateStr(input: number) {
|
||||||
let src = 'abcdefghijklmnopqrstuvwxyz1234567890'
|
let src = 'abcdefghijklmnopqrstuvwxyz1234567890'
|
||||||
@ -289,7 +210,8 @@ async function getShareCodePool(key: string, num: number) {
|
|||||||
return shareCode
|
return shareCode
|
||||||
}
|
}
|
||||||
|
|
||||||
/*async function wechat_app_msg(title: string, content: string, user: string) {
|
/*
|
||||||
|
async function wechat_app_msg(title: string, content: string, user: string) {
|
||||||
let corpid: string = "", corpsecret: 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 {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 access_token: string = gettoken.access_token
|
||||||
@ -308,11 +230,8 @@ async function getShareCodePool(key: string, num: number) {
|
|||||||
} else {
|
} else {
|
||||||
console.log('企业微信应用消息发送失败', send)
|
console.log('企业微信应用消息发送失败', send)
|
||||||
}
|
}
|
||||||
}*/
|
|
||||||
|
|
||||||
function obj2str(obj: object) {
|
|
||||||
return JSON.stringify(obj)
|
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
async function getDevice() {
|
async function getDevice() {
|
||||||
let {data} = await axios.get('https://betahub.cn/api/apple/devices/iPhone', {
|
let {data} = await axios.get('https://betahub.cn/api/apple/devices/iPhone', {
|
||||||
@ -377,13 +296,11 @@ function post(url: string, prarms?: string | object, headers?: any): Promise<any
|
|||||||
|
|
||||||
export default USER_AGENT
|
export default USER_AGENT
|
||||||
export {
|
export {
|
||||||
TotalBean,
|
|
||||||
getBeanShareCode,
|
getBeanShareCode,
|
||||||
getFarmShareCode,
|
getFarmShareCode,
|
||||||
requireConfig,
|
getCookie,
|
||||||
wait,
|
wait,
|
||||||
getRandomNumberByRange,
|
getRandomNumberByRange,
|
||||||
requestAlgo,
|
|
||||||
getJxToken,
|
getJxToken,
|
||||||
exceptCookie,
|
exceptCookie,
|
||||||
randomString,
|
randomString,
|
||||||
@ -392,8 +309,8 @@ export {
|
|||||||
getshareCodeHW,
|
getshareCodeHW,
|
||||||
getShareCodePool,
|
getShareCodePool,
|
||||||
randomWord,
|
randomWord,
|
||||||
obj2str,
|
|
||||||
jdpingou,
|
jdpingou,
|
||||||
get,
|
get,
|
||||||
post
|
post,
|
||||||
|
USER_AGENTS_ARR
|
||||||
}
|
}
|
||||||
|
12
jd_dpqd.js
12
jd_dpqd.js
@ -34,22 +34,22 @@ const token = [
|
|||||||
"62CED31ECD51A5D51A2BBB9FB793393A",
|
"62CED31ECD51A5D51A2BBB9FB793393A",
|
||||||
"2ED2F283E4640130BA5128E8BBDC3DDA",
|
"2ED2F283E4640130BA5128E8BBDC3DDA",
|
||||||
"1DD46671387EAC6FDC14B753E01D5E30",
|
"1DD46671387EAC6FDC14B753E01D5E30",
|
||||||
"55F4692F86018A4E5FE035E96942C985",
|
"BD0D2682B13A75E0AAF7D8E78844F07C",
|
||||||
"662E62C629FB6B20CED938E41A0DC026",
|
"662E62C629FB6B20CED938E41A0DC026",
|
||||||
"F573A078062F9F18BFCC39080864D7F5",
|
"F573A078062F9F18BFCC39080864D7F5",
|
||||||
"D7DCB5D6D847EB0167C2B0A180B95F68",
|
"D7DCB5D6D847EB0167C2B0A180B95F68",
|
||||||
"F7534A237EC4CFD50B8901BEF08E6FB7",
|
"F7534A237EC4CFD50B8901BEF08E6FB7",
|
||||||
"6F92A6B2AF1D1C6BA2315F12C15194D2",
|
"835C69D00C3226A2C5A20A9DD4851CB3",
|
||||||
"137B6809356B33FFACA79B8D6115208F",
|
"137B6809356B33FFACA79B8D6115208F",
|
||||||
"120D154DB4799F2F765FE067EE580025",
|
"120D154DB4799F2F765FE067EE580025",
|
||||||
"67D2D5824D043A5C2EA9C53B900B932C",
|
"67D2D5824D043A5C2EA9C53B900B932C",
|
||||||
"43FE9201AB1206649B74BE1487A4BB3C",
|
"43FE9201AB1206649B74BE1487A4BB3C",
|
||||||
"A3DD0D4F4068F0FA9671937E4CC402CD",
|
"833CE1B5158A097598C07D4B2B5B314E",
|
||||||
"AA515683C3F7D2A4797AD5B4B52E4496",
|
"37D0FAA99892A9E613A1B46E5A55973B",
|
||||||
"205E1E703925C48276C0DEBF16C6CBAD",
|
"205E1E703925C48276C0DEBF16C6CBAD",
|
||||||
"DC2D503AEC0235CB3F574DE47192325A",
|
"DC2D503AEC0235CB3F574DE47192325A",
|
||||||
"921478C146E5C60F2444E3978AC8E94F",
|
"921478C146E5C60F2444E3978AC8E94F",
|
||||||
"65F125FA81931EFB87E3558AB203D3E3",
|
"F327D3978F47808803FD532F19BE3696",
|
||||||
"DCD4903E0278DBA70A302612F411876F",
|
"DCD4903E0278DBA70A302612F411876F",
|
||||||
"DB872465EDEB653BB501819F9B9DD326",
|
"DB872465EDEB653BB501819F9B9DD326",
|
||||||
"D4BE8025929E6D662FBCB9F946BF4215",
|
"D4BE8025929E6D662FBCB9F946BF4215",
|
||||||
@ -85,7 +85,7 @@ if ($.isNode()) {
|
|||||||
$.isLogin = true;
|
$.isLogin = true;
|
||||||
$.nickName = '';
|
$.nickName = '';
|
||||||
message = '';
|
message = '';
|
||||||
await TotalBean();
|
//await TotalBean();
|
||||||
console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`);
|
console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`);
|
||||||
if (!$.isLogin) {
|
if (!$.isLogin) {
|
||||||
$.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"});
|
$.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"});
|
||||||
|
Loading…
Reference in New Issue
Block a user