1 Star 0 Fork 0

TanRuikai/Absinthe

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
jd_tewu.ts 5.82 KB
一键复制 编辑 原始数据 按行查看 历史
/**
* 京东-下拉
* cron: 15 8,20 * * *
*/
import USER_AGENT, {requireConfig, wait, o2s, getshareCodeHW, post} from './TS_USER_AGENTS'
interface ShareCode {
activityId: number,
encryptProjectId: string,
encryptAssignmentId: string,
itemId: string
}
let cookie: string = '', UserName: string = '', res: any = '', message: string = '', shareCodes: ShareCode[] = [], shareCodesSelf: ShareCode[] = [], shareCodesHW: any = [], black: string[] = []
!(async () => {
let cookiesArr: string[] = await requireConfig()
let activityId: number
for (let [index, value] of cookiesArr.entries()) {
cookie = value
UserName = decodeURIComponent(cookie.match(/pt_pin=([^;]*)/)![1])
console.log(`\n开始【京东账号${index + 1}${UserName}\n`)
res = await api('showSecondFloorCardInfo', {"source": "card"})
try {
activityId = res.data.result.activityBaseInfo.activityId
} catch (e) {
console.log('获取活动信息错误')
black.push(UserName)
await wait(2000)
continue
}
let encryptProjectId: string = res.data.result.activityBaseInfo.encryptProjectId
await wait(1000)
// 任务
res = await api('superBrandTaskList', {"source": "card", "activityId": activityId, "assistInfoFlag": 1})
o2s(res)
for (let t of res.data.result.taskList) {
if (t.completionCnt !== t.assignmentTimesLimit) {
// 浏览、关注
if (t.ext?.shoppingActivity || t.ext?.followShop) {
let tp = t.ext?.shoppingActivity || t.ext?.followShop
tp = tp[0]
console.log(tp.title || tp.shopName, tp.itemId)
res = await api('superBrandDoTask', {"source": "card", "activityId": activityId, "encryptProjectId": encryptProjectId, "encryptAssignmentId": t.encryptAssignmentId, "assignmentType": t.assignmentType, "itemId": tp.itemId, "actionType": 0})
console.log(res.data?.bizMsg)
await wait(2000)
}
// 下拉
if (t.ext?.sign2) {
for (let sign of t.ext.sign2) {
if (sign.status === 0 && [10, 18].includes(new Date().getHours())) {
res = await api('superBrandDoTask', {"source": "card", "activityId": activityId, "encryptProjectId": encryptProjectId, "encryptAssignmentId": t.encryptAssignmentId, "assignmentType": t.assignmentType, "itemId": t.ext.currentSectionItemId, "actionType": 0})
console.log(res.data?.bizMsg)
await wait(2000)
console.log('下拉任务', t.ext?.sign2)
} else if (sign.status !== 0) {
console.log(`${sign.beginTime} 签到完成`)
}
}
}
}
// 助力码
if (t.ext?.assistTaskDetail) {
console.log('助力码:', t.ext.assistTaskDetail.itemId)
console.log('收到助力:', t.ext?.assistList?.length ?? 0)
shareCodesSelf.push({
activityId: activityId,
encryptProjectId: encryptProjectId,
encryptAssignmentId: t.encryptAssignmentId,
itemId: t.ext.assistTaskDetail.itemId
})
}
}
// 抽奖
try {
if (new Date().getHours() === 20) {
let sum: number = 0
res = await api('superBrandSecondFloorMainPage', {"source": "card"})
let userStarNum: number = res.data.result.activityUserInfo.userStarNum
console.log('可以抽奖', userStarNum, '')
for (let i = 0; i < userStarNum; i++) {
res = await api('superBrandTaskLottery', {"source": "card", "activityId": activityId})
if (res.data.result?.rewardComponent?.beanList?.length) {
console.log('抽奖获得京豆:', res.data.result.rewardComponent.beanList[0].quantity)
sum += res.data.result.rewardComponent.beanList[0].quantity
} else {
console.log('没抽到?', JSON.stringify(res))
}
await wait(2000)
}
message += `【京东账号${index + 1}${UserName}\n抽奖${userStarNum}次,获得京豆${sum}\n\n`
}
} catch (e) {
console.log('error')
}
await wait(2000)
}
o2s(shareCodesSelf)
shareCodesHW = await getshareCodeHW('tewu')
shareCodes = [...shareCodesSelf, ...shareCodesHW]
let full: string[] = []
for (let [index, value] of cookiesArr.entries()) {
cookie = value
UserName = decodeURIComponent(cookie.match(/pt_pin=([^;]*)/)![1])
if (black.includes(UserName)) {
console.log('黑号')
continue
}
for (let code of shareCodes) {
if (full.includes(code.itemId))
continue
console.log(`账号${index + 1} ${UserName} 去助力 ${code.itemId}`)
res = await api('superBrandDoTask', {"source": "card", "activityId": code.activityId, "encryptProjectId": code.encryptProjectId, "encryptAssignmentId": code.encryptAssignmentId, "assignmentType": 2, "itemId": code.itemId, "actionType": 0})
if (res.data.bizCode === '0') {
console.log('助力成功')
} else if (res.data.bizCode === '103') {
console.log('助力满了')
full.push(code.itemId)
} else if (res.data.bizCode === '104') {
console.log('已助力过')
} else if (res.data.bizCode === '108') {
console.log('上限')
break
} else if (res.data.bizCode === '109') {
} else if (res.data.bizCode === '2001') {
console.log('黑号')
break
} else if (res.data.bizCode === '4001') {
console.log('助力码过期')
} else {
o2s(res, 'error')
}
await wait(2000)
}
}
})()
async function api(fn: string, body: object) {
return await post(`https://api.m.jd.com/?uuid=&client=wh5&appid=ProductZ4Brand&functionId=${fn}&t=${Date.now()}&body=${encodeURIComponent(JSON.stringify(body))}`, '', {
'Host': 'api.m.jd.com',
'Origin': 'https://pro.m.jd.com',
'User-Agent': USER_AGENT,
'Referer': 'https://pro.m.jd.com/',
'Cookie': cookie
})
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/tanruikai/Absinthe.git
git@gitee.com:tanruikai/Absinthe.git
tanruikai
Absinthe
Absinthe
main

搜索帮助