mirror of
https://github.com/shufflewzc/faker2.git
synced 2025-04-22 10:08:45 +08:00
172 lines
6.1 KiB
TypeScript
172 lines
6.1 KiB
TypeScript
/**
|
||
* 京东-锦鲤红包
|
||
* 6点后做全部CK
|
||
* cron: 2 0,1,6 * * *
|
||
* CK1 HW.ts -> 内部
|
||
* CK2~n 内部 -> HW.ts
|
||
*/
|
||
|
||
import * as dotenv from 'dotenv'
|
||
import {get, post, getshareCodeHW, o2s, getCookie, wait} from "./TS_USER_AGENTS"
|
||
|
||
let rabbitToken: string = process.env.RABBIT_TOKEN || '', tg_id: string = process.env.TG_ID || ''
|
||
let cookie: string, cookiesArr: string[] = [], res: any, UserName: string
|
||
let shareCodesSelf: string[] = [], shareCodes: string[] = [], shareCodesHW: string[] = [], fullCode: string[] = [], log: string
|
||
|
||
!(async () => {
|
||
dotenv.config()
|
||
cookiesArr = await getCookie()
|
||
cookiesArr = cookiesArr.slice(0, 1)
|
||
await join()
|
||
await help()
|
||
|
||
cookiesArr = await getCookie()
|
||
cookiesArr = cookiesArr.slice(0, 9)
|
||
if ([0, 1].includes(new Date().getHours())) {
|
||
await join()
|
||
}
|
||
await getShareCodeSelf()
|
||
await help()
|
||
})()
|
||
|
||
async function join() {
|
||
for (let [index, value] of cookiesArr.entries()) {
|
||
try {
|
||
cookie = value
|
||
UserName = decodeURIComponent(cookie.match(/pt_pin=([^;]*)/)![1])
|
||
console.log(`\n开始【京东账号${index + 1}】${UserName}\n`)
|
||
for (let i = 0; i < 3; i++) {
|
||
try {
|
||
log = await getLog()
|
||
res = await api('h5launch', {followShop: 0, random: log.match(/"random":"(\d+)"/)[1], log: log.match(/"log":"(.*)"/)[1], sceneid: 'JLHBhPageh5'})
|
||
console.log('活动初始化:', res.data.result.statusDesc)
|
||
if (res.rtn_code === 0) {
|
||
break
|
||
}
|
||
} catch (e) {
|
||
console.log('join error', res.rtn_code)
|
||
await wait(5000)
|
||
}
|
||
}
|
||
} catch (e) {
|
||
console.log(e)
|
||
}
|
||
await wait(5000)
|
||
}
|
||
}
|
||
|
||
async function getShareCodeSelf(one: boolean = false) {
|
||
if (one) {
|
||
res = await api('h5activityIndex', {"isjdapp": 1})
|
||
return res?.data?.result?.redpacketInfo?.id
|
||
} else {
|
||
for (let [index, value] of cookiesArr.entries()) {
|
||
try {
|
||
cookie = value
|
||
UserName = decodeURIComponent(cookie.match(/pt_pin=([^;]*)/)![1])
|
||
console.log(`\n开始【京东账号${index + 1}】${UserName}\n`)
|
||
res = await api('h5activityIndex', {"isjdapp": 1})
|
||
console.log('ID:', res.data.result.redpacketInfo.id)
|
||
shareCodesSelf.push(res.data.result.redpacketInfo.id)
|
||
} catch (e) {
|
||
console.log('getShareCodeSelf error', e)
|
||
}
|
||
await wait(1000)
|
||
}
|
||
o2s(shareCodesSelf)
|
||
}
|
||
}
|
||
|
||
async function help() {
|
||
for (let [index, value] of cookiesArr.entries()) {
|
||
try {
|
||
cookie = value
|
||
UserName = decodeURIComponent(cookie.match(/pt_pin=([^;]*)/)![1])
|
||
if (shareCodesHW.length === 0) {
|
||
shareCodesHW = await getshareCodeHW('jlhb')
|
||
}
|
||
if (index === 0) {
|
||
shareCodes = Array.from(new Set([...shareCodesHW, ...shareCodesSelf]))
|
||
} else {
|
||
shareCodes = Array.from(new Set([...shareCodesSelf, ...shareCodesHW]))
|
||
}
|
||
|
||
let me: string = await getShareCodeSelf(true), remain: boolean = true
|
||
for (let code of shareCodes) {
|
||
if (!remain) break
|
||
let success: boolean = false
|
||
if (!fullCode.includes(code) && code !== me) {
|
||
console.log(`账号${index + 1} ${UserName} 去助力 ${code} ${shareCodesSelf.includes(code) ? '*内部*' : ''}`)
|
||
for (let i = 0; i < 5; i++) {
|
||
if (success) break
|
||
log = await getLog()
|
||
res = await api('jinli_h5assist', {"redPacketId": code, "followShop": 0, random: log.match(/"random":"(\d+)"/)[1], log: log.match(/"log":"(.*)"/)[1], sceneid: 'JLHBhPageh5'})
|
||
if (res.rtn_code !== 0) {
|
||
console.log('help error', res.rtn_code)
|
||
await wait(5000)
|
||
} else {
|
||
success = true
|
||
if (res.data.result.status === 0) {
|
||
console.log('助力成功:', parseFloat(res.data.result.assistReward.discount))
|
||
await wait(45000)
|
||
remain = false
|
||
break
|
||
} else if (res.data.result.status === 3) {
|
||
console.log('今日助力次数已满')
|
||
remain = false
|
||
await wait(45000)
|
||
break
|
||
} else {
|
||
console.log('助力结果:', res.data.result.statusDesc)
|
||
if (res.data.result.statusDesc === '啊偶,TA的助力已满,开启自己的红包活动吧~') {
|
||
fullCode.push(code)
|
||
}
|
||
await wait(45000)
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
} catch (e) {
|
||
console.log(e)
|
||
}
|
||
await wait(5000)
|
||
}
|
||
}
|
||
|
||
async function api(fn: string, body: object) {
|
||
return await post(`https://api.m.jd.com/api?appid=jinlihongbao&functionId=${fn}&loginType=2&client=jinlihongbao&clientVersion=10.2.4&osVersion=AndroidOS&d_brand=Xiaomi&d_model=Xiaomi`, `body=${encodeURIComponent(JSON.stringify(body))}`, {
|
||
"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": [
|
||
"Mozilla/5.0 (Linux; U; Android 8.0.0; zh-cn; Mi Note 2 Build/OPR1.170623.032) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.1.1",
|
||
"MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
|
||
][Math.floor(Math.random() * 2)], "Cookie": cookie,
|
||
})
|
||
}
|
||
|
||
async function getLog() {
|
||
if (!rabbitToken && !tg_id) {
|
||
let data = await get(`https://api.jdsharecode.xyz/api/jlhb`)
|
||
if (data !== 1 && data !== '1') {
|
||
return data
|
||
} else {
|
||
console.log('No log')
|
||
process.exit(0)
|
||
}
|
||
} else {
|
||
console.log('rabbit log')
|
||
let data: any = ''
|
||
for (let i = 0; i < 10; i++) {
|
||
try {
|
||
data = await get(`http://www.madrabbit.cf:8080/license/log?tg_id=${tg_id}&token=${rabbitToken}`)
|
||
break
|
||
} catch (e) {
|
||
console.log('rabbit log api error')
|
||
}
|
||
}
|
||
return `'"random":"${data.data.random}","log":"${data.data.log}"'`
|
||
}
|
||
} |