From 0f7db5e8305940bdb41741a0119945ecfaebcdc2 Mon Sep 17 00:00:00 2001 From: Faker Date: Wed, 29 Jun 2022 11:13:01 +0800 Subject: [PATCH] update --- jd_dpqd.js | 12 ++++-- jd_queryRedpacket.ts | 49 ++++++++++++---------- jd_wechat_sign.ts | 97 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 132 insertions(+), 26 deletions(-) create mode 100644 jd_wechat_sign.ts diff --git a/jd_dpqd.js b/jd_dpqd.js index 66fbbd4..84a47ea 100644 --- a/jd_dpqd.js +++ b/jd_dpqd.js @@ -29,10 +29,10 @@ const token = [ "065F571B5F4A0ADC8B8EC592EEB59F93", "B15846FF6A6380A633BD9534717B401B", "ACE30EA88B09840F93FA47519C5D6ED8", - "3968E5EB1C28E3CBF69337BDE60093F6", - "4A748EF63B85D9CB06B13E7CA2524ABD", + "D84139E4C8E8B9837C26BA32363AAD0A", + "B34A7017CBA2368A32A5B73AD7A0561B", "5CF1A3455369BDB3D1153D9FC974CAFA", - "3676E6F564E5D04A8FC8D045BAD0B623", + "FFAA0740A5EB469232AE66103F7C97BC", "9DCB43BF4CEFD54BBCE2E58BAEA4E2F6", "5CF1A3455369BDB3D1153D9FC974CAFA", "E29627AF30D59CF7FE7B01C63BD9A975", @@ -43,7 +43,11 @@ const token = [ "70DDA53B61DB5E2E16B6515869C9CA07", "46D8CB32794AB8EA1F42E83360918961", "9DCB43BF4CEFD54BBCE2E58BAEA4E2F6", - "9DCB43BF4CEFD54BBCE2E58BAEA4E2F6" + "9DCB43BF4CEFD54BBCE2E58BAEA4E2F6", + "CA7DDB3A3AE053B2038B298A14519438", + "E6CB318FA48273300DE84B620DB22E85", + "4759990A4F428A7742CEAD8DF4E18D8A", + "E2694BFF3182B4B942E653B60C055E53" ] if ($.isNode()) { diff --git a/jd_queryRedpacket.ts b/jd_queryRedpacket.ts index ee949f1..a7c32fc 100644 --- a/jd_queryRedpacket.ts +++ b/jd_queryRedpacket.ts @@ -2,13 +2,29 @@ import {JDHelloWorld, User} from "./TS_JDHelloWorld"; class Jd_queryRedpacket extends JDHelloWorld { constructor() { - super(); + super("京东红包"); } async init() { await this.run(new Jd_queryRedpacket()) } + add(arg1: number, arg2: number) { + let r1, r2, m + try { + r1 = arg1.toString().split('.')[1].length + } catch (e) { + r1 = 0 + } + try { + r2 = arg2.toString().split('.')[1].length + } catch (e) { + r2 = 0 + } + m = Math.pow(10, Math.max(r1, r2)) + return parseFloat(((arg1 * m + arg2 * m) / m).toFixed(2)) + } + async main(user: User) { let res: any = await this.get(`https://m.jingxi.com/user/info/QueryUserRedEnvelopesV2?type=1&orgFlag=JD_PinGou_New&page=1&cashRedType=1&redBalanceFlag=1&channel=1&_=${Date.now()}&sceneval=2&g_login_type=1&g_ty=ls`, { 'Host': 'm.jingxi.com', @@ -16,18 +32,23 @@ class Jd_queryRedpacket extends JDHelloWorld { "Cookie": user.cookie, 'User-Agent': user.UserAgent }) - let day: number = new Date().getDay(), jdRed: number = 0, jdRedExp: number = 0 + let day: number = new Date().getDay(), jdRed: number = 0, jdRedExp: number = 0, jsRed: number = 0, jsRedExp: number = 0 for (let j of res.data.useRedInfo?.redList || []) { + console.log(j) if (j.orgLimitStr.includes('京喜')) { } else if (j.activityName.includes('极速版')) { + jsRed += j.balance + if (new Date(j.endTime * 1000).getDay() === day) + jsRedExp = this.add(jsRedExp, j.balance) } else if (j.orgLimitStr.includes('京东健康')) { } else { - jdRed = add(jdRed, j.balance) + jdRed = this.add(jdRed, j.balance) if (new Date(j.endTime * 1000).getDay() === day) - jdRedExp = add(jdRedExp, j.balance) + jdRedExp = this.add(jdRedExp, j.balance) } } - console.log(jdRed, ' 今日过期:', jdRedExp) + console.log('京东', jdRed, ' 今日过期:', jdRedExp) + console.log('极速', jsRed, ' 今日过期:', jsRedExp) let msg = `【账号】 ${user.UserName}\n京东红包 ${jdRed}\n今日过期 ${jdRedExp}\n\n` return { msg: msg @@ -35,20 +56,4 @@ class Jd_queryRedpacket extends JDHelloWorld { } } -new Jd_queryRedpacket().init().then().catch() - -function add(arg1: number, arg2: number) { - let r1, r2, m - try { - r1 = arg1.toString().split('.')[1].length - } catch (e) { - r1 = 0 - } - try { - r2 = arg2.toString().split('.')[1].length - } catch (e) { - r2 = 0 - } - m = Math.pow(10, Math.max(r1, r2)) - return parseFloat(((arg1 * m + arg2 * m) / m).toFixed(2)) -} \ No newline at end of file +new Jd_queryRedpacket().init().then() diff --git a/jd_wechat_sign.ts b/jd_wechat_sign.ts new file mode 100644 index 0000000..44669df --- /dev/null +++ b/jd_wechat_sign.ts @@ -0,0 +1,97 @@ +/** + * 微信小程序签到红包 + * FP_9A38A + * cron: 8 0 * * * + */ + +import {H5ST} from "./utils/h5st" +import {User, JDHelloWorld} from "./TS_JDHelloWorld"; + +class Jd_wechat_sign extends JDHelloWorld { + constructor() { + super("微信签到"); + } + + async init() { + await this.run(this) + } + + async main(user: User) { + let h5stTool = new H5ST("9a38a", user.UserAgent, process.env.FP_9A38A || ""); + await h5stTool.__genAlgo() + let timestamp: number = Date.now() + let headers: object = { + 'content-type': 'application/json', + 'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15F79 MicroMessenger/8.0.15(0x18000f2e) NetType/WIFI Language/zh_CN', + 'referer': 'https://servicewechat.com/wx91d27dbf599dff74/581/page-frame.html', + 'cookie': user.cookie + }, h5st: string, res: any, signDays: number = 0, rewardValue: number = 0 + + h5st = h5stTool.__genH5st({ + appid: 'hot_channel', + body: JSON.stringify({"activityId": "10004"}), + client: 'android', + clientVersion: '7.16.250', + functionId: 'SignComponent_doSignTask', + t: timestamp.toString(), + }) + res = await this.post(`https://api.m.jd.com/signTask/doSignTask?functionId=SignComponent_doSignTask&appid=hot_channel&body={"activityId":"10004"}&client=android&clientVersion=7.16.250&t=${timestamp}&h5st=${h5st}`, '', headers) + if (res.data) { + console.log('已签到', res.data.signDays, '天,奖励', res.data.rewardValue, '元') + signDays = res.data.signDays + rewardValue = res.data.rewardValue + } else { + console.log(res.message) + } + await this.wait(2000) + + res = await this.get(`https://api.m.jd.com/signTask/querySignList?client=android&clientVersion=7.18.110&functionId=SignComponent_querySignList&appid=hot_channel&loginType=2&body=%7B%22activityId%22%3A%2210004%22%7D`, headers) + let scanAssignmentId: string = res.data.scanTaskInfo.scanAssignmentId, itemId: string = res.data.scanTaskInfo.itemId + if (!res.data?.scanTaskInfo?.completionFlag) { + h5stTool = new H5ST("2b5bc", user.UserAgent, process.env.FP_2B5BC || ""); + await h5stTool.__genAlgo() + h5st = h5stTool.__genH5st({ + appid: 'hot_channel', + body: JSON.stringify({"activityId": "10004", "actionType": 1, scanAssignmentId, itemId}), + client: 'android', + clientVersion: '7.18.110', + functionId: 'SignComponent_doScanTask', + t: timestamp.toString(), + }) + res = await this.get(`https://api.m.jd.com/scanTask/startScanTask?client=android&clientVersion=7.18.110&functionId=SignComponent_doScanTask&appid=hot_channel&body=${encodeURIComponent(JSON.stringify({ + "activityId": "10004", + "actionType": 1, + "scanAssignmentId": scanAssignmentId, + "itemId": res.data.scanTaskInfo.itemId + }))}&h5st=${h5st}`, headers) + console.log('领取任务', res.success) + await this.wait(8000) + + h5st = h5stTool.__genH5st({ + appid: 'hot_channel', + body: JSON.stringify({"activityId": "10004", "actionType": 0, scanAssignmentId, itemId}), + client: 'android', + clientVersion: '7.18.110', + functionId: 'SignComponent_doScanTask', + t: timestamp.toString(), + }) + res = await this.get(`https://api.m.jd.com/scanTask/startScanTask?client=android&clientVersion=7.18.110&functionId=SignComponent_doScanTask&appid=hot_channel&body=${encodeURIComponent(JSON.stringify({ + "activityId": "10004", + "actionType": 0, + scanAssignmentId, + itemId + }))}&h5st=${h5st}`, headers) + console.log('任务完成', res.data.rewardValue) + } else if (res.data?.scanTaskInfo?.completionFlag) { + console.log('浏览任务已完成') + } else { + console.log('无浏览任务') + } + + if (signDays && rewardValue) { + return {msg: `【京东账号${user.index + 1}】 ${user.UserName}\n已签到 ${signDays}天\n奖励 ${rewardValue}元\n\n`} + } + } +} + +new Jd_wechat_sign().init().then() \ No newline at end of file