From ef6ec6858cafb2047d62b2e2f8da9a14f7bffb9f Mon Sep 17 00:00:00 2001 From: lxk0301 <778732665@qq.com> Date: Wed, 9 Dec 2020 12:10:28 +0800 Subject: [PATCH 01/10] =?UTF-8?q?=E4=BA=AC=E5=96=9C=E5=B7=A5=E5=8E=82?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=E6=B7=BB=E5=8A=A0=E7=94=9F=E4=BA=A7=E5=95=86?= =?UTF-8?q?=E5=93=81=E7=9A=84=E6=89=80=E9=9C=80=E7=94=B5=E5=8A=9B=E4=B8=8E?= =?UTF-8?q?=E5=B7=B2=E6=8A=95=E7=94=B5=E5=8A=9B=E7=9A=84=E6=89=93=E5=8D=B0?= =?UTF-8?q?log?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jd_dreamFactory.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/jd_dreamFactory.js b/jd_dreamFactory.js index 407a05d..cf4a173 100644 --- a/jd_dreamFactory.js +++ b/jd_dreamFactory.js @@ -542,6 +542,8 @@ function userInfo() { console.log(`当前电力:${data.user.electric}`) console.log(`当前等级:${data.user.currentLevel}`) console.log(`分享码: ${data.user.encryptPin}`); + console.log(`已投入电力:${production.investedElectric}`); + console.log(`所需电力:${production.needElectric}`); console.log(`生产进度:${((production.investedElectric / production.needElectric) * 100).toFixed(2)}%`); message += `【京东账号${$.index}】${$.nickName}\n` message += `【生产商品】${$.productName}\n`; From 29ea8f6ce47c827196491b6e6815e0f337893364 Mon Sep 17 00:00:00 2001 From: DoveBoy <393366046@qq.com> Date: Wed, 9 Dec 2020 12:53:36 +0800 Subject: [PATCH 02/10] =?UTF-8?q?fix=E4=BA=91=E5=87=BD=E6=95=B0=E7=82=B9?= =?UTF-8?q?=E7=82=B9=E5=88=B820=E7=82=B9=E6=9C=AA=E9=A2=86=E5=8F=96?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix云函数点点券20点未领取的bug --- serverless.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverless.yml b/serverless.yml index 8c4e03b..b7763db 100644 --- a/serverless.yml +++ b/serverless.yml @@ -43,7 +43,7 @@ inputs: - timer: # 宠汪汪积分兑换奖品# 宠汪汪偷好友积分与狗# 点点券 parameters: name: jd_joy_reward_jd_joy_steal_jd_necklace - cronExpression: "0 0 0-16/8 * * * *" + cronExpression: "0 0 0-16/8,20 * * * *" enable: true argument: jd_joy_reward&jd_joy_steal&jd_necklace - timer: # 京东全民开红包 # 进店领豆 # 取关京东店铺商品# 京东抽奖机# 东东小窝# 秒杀红包雨# 健康抽奖机 From acd4f49c672eb61565eba2a6c7f58dea7bda8941 Mon Sep 17 00:00:00 2001 From: lxk0301 <778732665@qq.com> Date: Wed, 9 Dec 2020 14:38:56 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=8E=9F=E4=BD=9C=E8=80=85=E4=BC=81=E9=B9=85=E9=98=85=E8=AF=BB?= =?UTF-8?q?=E7=9A=841=E9=87=91=E5=B8=81=E9=97=AE=E9=A2=98,=E5=9C=88xtask?= =?UTF-8?q?=E8=AE=A2=E9=98=85=E6=B7=BB=E5=8A=A0=E8=8B=B9=E6=9E=9C=E6=8A=BD?= =?UTF-8?q?=E5=A5=96=E6=9C=BA=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- QuantumultX/lxk0301_gallery.json | 1 + backUp/mySelf.boxjs.json | 2 +- backUp/qqread.js | 604 +++++++++++++------------------ jdDreamFactoryShareCodes.js | 6 +- jd_dreamFactory.js | 2 +- 5 files changed, 258 insertions(+), 357 deletions(-) diff --git a/QuantumultX/lxk0301_gallery.json b/QuantumultX/lxk0301_gallery.json index 51baa66..91f4420 100644 --- a/QuantumultX/lxk0301_gallery.json +++ b/QuantumultX/lxk0301_gallery.json @@ -31,6 +31,7 @@ "10 7 * * * https://raw.githubusercontent.com/lxk0301/jd_scripts/master/jd_ds.js, tag=京东代属, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_ds.png", "10 7 * * * https://raw.githubusercontent.com/lxk0301/jd_scripts/master/jd_digital_floor.js, tag=数码加购京豆, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_redPacket.png", "0 0,9,11,13,15,17,19,20,21,23 * * * https://raw.githubusercontent.com/lxk0301/jd_scripts/master/jd_live_redrain.js, tag=直播红包雨, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_redPacket.png", + "10 0 * * * https://raw.githubusercontent.com/lxk0301/jd_scripts/master/jd_apple_live.js, tag=苹果抽奖机, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_redPacket.png", "15 17 * * * https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/xmSports.js, tag=小米运动, img-url=https://raw.githubusercontent.com/58xinian/icon/master/xmyd.png" ] } diff --git a/backUp/mySelf.boxjs.json b/backUp/mySelf.boxjs.json index 0aa942c..15e015a 100644 --- a/backUp/mySelf.boxjs.json +++ b/backUp/mySelf.boxjs.json @@ -9,7 +9,7 @@ "id": "QQ_READ", "name": "企鹅阅读(QQ小程序)", "keys": [ - "qqreadhd", + "qqreadbodyVal", "qqreadtimeurl", "qqreadtimehd" ], diff --git a/backUp/qqread.js b/backUp/qqread.js index 767c34c..48c6d37 100644 --- a/backUp/qqread.js +++ b/backUp/qqread.js @@ -38,32 +38,22 @@ ziye ⚠️宝箱奖励为20分钟一次,自己根据情况设置定时,建议设置11分钟一次 hostname=mqqapi.reader.qq.com - ############## 圈x - -#企鹅读书获取cookie -https:\/\/mqqapi\.reader\.qq\.com\/mqq\/user\/init url script-request-header https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/qqread.js - +#企鹅读书获取更新body +https:\/\/mqqapi\.reader\.qq\.com\/log\/v4\/mqq\/track url script-request-body https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/qqread.js #企鹅读书获取时长cookie https:\/\/mqqapi\.reader\.qq\.com\/mqq\/addReadTimeWithBid? url script-request-header https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/qqread.js - - ############## loon - -//企鹅读书获取cookie -http-request https:\/\/mqqapi\.reader\.qq\.com\/mqq\/user\/init script-path=https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/qqread.js,requires-header=true, tag=企鹅读书获取cookie - -//企鹅读书获取时长cookie +#企鹅读书获取更新body +http-request https:\/\/mqqapi\.reader\.qq\.com\/log\/v4\/mqq\/track script-path=https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/qqread.js,requires-body=true, tag=企鹅读书获取更新body +#企鹅读书获取时长cookie http-request https:\/\/mqqapi\.reader\.qq\.com\/mqq\/addReadTimeWithBid? script-path=https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/qqread.js, requires-header=true, tag=企鹅读书获取时长cookie - - ############## surge +#企鹅读书获取更新body +企鹅读书获取更新body = type=http-request,pattern=https:\/\/mqqapi\.reader\.qq\.com\/log\/v4\/mqq\/track,requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/qqread.js, script-update-interval=0 +#企鹅读书获取时长cookie +企鹅读书获取时长cookie = type=http-request,pattern=https:\/\/mqqapi\.reader\.qq\.com\/mqq\/addReadTimeWithBid?,script-path=https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/qqread.js -//企鹅读书获取cookie -企鹅读书 = type=http-request,pattern=https:\/\/mqqapi\.reader\.qq\.com\/mqq\/user\/init,script-path=https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/qqread.js, requires-header=true - -//企鹅读书获取时长cookie -企鹅读书 = type=http-request,pattern=https:\/\/mqqapi\.reader\.qq\.com\/mqq\/addReadTimeWithBid?,script-path=https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/qqread.js, requires-header=true */ @@ -74,20 +64,14 @@ let task = '', config, ssr2 = '', wktime; console.log(`\n========= 脚本执行时间(TM):${new Date(new Date().getTime() + 0 * 60 * 60 * 1000).toLocaleString('zh', {hour12: false})} =========\n`) const logs = 1; //0为关闭日志,1为开启 -const notifyInterval = 3 -//0为关闭通知,1为所有通知,2为宝箱领取成功通知,3为宝箱每15次通知一次 -const dd = 1//单次任务延迟,默认1秒 const TIME = 30//单次时长上传限制,默认5分钟 const maxtime = 20//每日上传时长限制,默认20小时 const wktimess = 1200//周奖励领取标准,默认1200分钟 -var tz = '' -const qqreadurlVal = `https://mqqapi.reader.qq.com/mqq/user/init`; -const qqreadurlKey = 'qqreadurl' -// const qqreadurlVal = $.getdata(qqreadurlKey) +let tz = '' +const qqreadbodyValKey = 'qqreadbodyVal' +let qqreadbodyVal = $.getdata(qqreadbodyValKey) -const qqreadheaderKey = 'qqreadhd' -let qqreadheaderVal = $.getdata(qqreadheaderKey) const qqreadtimeurlKey = 'qqreadtimeurl' let qqreadtimeurlVal = $.getdata(qqreadtimeurlKey) @@ -97,24 +81,23 @@ let qqreadtimeheaderVal = $.getdata(qqreadtimeheaderKey) //云函数使用在下面填写 let QQ_READ_COOKIES = [ { - qqreadurlVal, - "qqreadheaderVal": ``, + "qqreadbodyVal": ``, "qqreadtimeurlVal": ``, "qqreadtimeheaderVal": `` } ] function getNodeCookie() { if ($.isNode()) { - let QQ_READ_HEADER_VAL = [], QQ_READ_TIME_URL_VAL = [], QQ_READ_TIME_HEADER_VAL = []; + let QQ_READ_BODY_VAL = [], QQ_READ_TIME_URL_VAL = [], QQ_READ_TIME_HEADER_VAL = []; if (process.env.QQ_READ_HEADER_VAL) { if (process.env.QQ_READ_HEADER_VAL.indexOf('@') > -1) { console.log(`您的QQ_READ_HEADER_VAL选择的是用@隔开\n`) - QQ_READ_HEADER_VAL = process.env.QQ_READ_HEADER_VAL.split('@'); + QQ_READ_BODY_VAL = process.env.QQ_READ_HEADER_VAL.split('@'); } else if (process.env.QQ_READ_HEADER_VAL.indexOf('\n') > -1) { console.log(`您的QQ_READ_HEADER_VAL选择的是用换行隔开\n`) - QQ_READ_HEADER_VAL = process.env.QQ_READ_HEADER_VAL.split('\n'); + QQ_READ_BODY_VAL = process.env.QQ_READ_HEADER_VAL.split('\n'); } else { - QQ_READ_HEADER_VAL = [process.env.QQ_READ_HEADER_VAL]; + QQ_READ_BODY_VAL = [process.env.QQ_READ_HEADER_VAL]; } // QQ_READ_HEADER_VAL = [...new Set(QQ_READ_HEADER_VAL)] // $.log(QQ_READ_HEADER_VAL) @@ -143,11 +126,10 @@ function getNodeCookie() { } // QQ_READ_TIME_HEADER_VAL = [...new Set(QQ_READ_TIME_HEADER_VAL)] } - if (QQ_READ_HEADER_VAL && QQ_READ_HEADER_VAL.length > 0) QQ_READ_COOKIES = []; - for (let i = 0; i < QQ_READ_HEADER_VAL.length; i ++) { + if (QQ_READ_BODY_VAL && QQ_READ_BODY_VAL.length > 0) QQ_READ_COOKIES = []; + for (let i = 0; i < QQ_READ_BODY_VAL.length; i ++) { QQ_READ_COOKIES.push({ - qqreadurlVal, - "qqreadheaderVal": QQ_READ_HEADER_VAL[i] || "", + "qqreadbodyVal": QQ_READ_BODY_VAL[i] || "", "qqreadtimeurlVal": QQ_READ_TIME_URL_VAL[i] || "", "qqreadtimeheaderVal": QQ_READ_TIME_HEADER_VAL[i] || "" }) @@ -174,24 +156,13 @@ if (isGetCookie) { } function GetCookie() { - - if ($request && $request.url.indexOf("init") >= 0) { - - // const qqreadurlVal = $request.url - // if (qqreadurlVal) $.setdata(qqreadurlVal, qqreadurlKey) - // $.log(`[${jsname}] 获取url请求: 成功,qqreadurlVal: ${qqreadurlVal}`) - - // const qqreadbodyVal = $request.body - // if (qqreadbodyVal) $.setdata(qqreadbodyVal, qqreadbodyKey) - // $.log(`[${jsname}] 获取阅读: 成功,qqreadbodyVal: ${qqreadbodyVal}`) - - // $.setdata(qqreadurlVal, qqreadurlKey); - const qqreadheaderVal = JSON.stringify($request.headers) - if (qqreadheaderVal) $.setdata(qqreadheaderVal, qqreadheaderKey) - $.log(`[${jsname}] 获取Cookie: 成功,qqreadheaderVal: ${qqreadheaderVal}`) - $.msg(qqreadheaderKey, `获取cookie: 成功🎉`, ``) - - } else if ($request && $request.url.indexOf("addReadTimeWithBid?") >= 0) { + if ($request.body && $request.body.indexOf("bookDetail_bottomBar_read_C") >= 0 && $request.body.indexOf("bookRead_show_I") >= 0 && $request.body.indexOf("topBar_left_back_C") < 0 && $request.body.indexOf("bookRead_dropOut_shelfYes_C") < 0) { + const qqreadbodyVal = $request.body; + if (qqreadbodyVal) $.setdata(qqreadbodyVal, qqreadbodyValKey); + $.log(`[${jsname}] 获取更新body: 成功,qqreadbodyVal: ${qqreadbodyVal}`); + $.msg(jsname, `获取更新body: 成功🎉`, ``); + } + if ($request && $request.url.indexOf("addReadTimeWithBid?") >= 0) { const qqreadtimeurlVal = $request.url if (qqreadtimeurlVal) $.setdata(qqreadtimeurlVal, qqreadtimeurlKey) $.log(`[${jsname}] 获取阅读时长url: 成功,qqreadtimeurlVal: ${qqreadtimeurlVal}`) @@ -200,7 +171,6 @@ function GetCookie() { if (qqreadtimeheaderVal) $.setdata(qqreadtimeheaderVal, qqreadtimeheaderKey) $.log(`[${jsname}] 获取时长header: 成功,qqreadtimeheaderVal: ${qqreadtimeheaderVal}`) $.msg(qqreadtimeheaderKey, `获取阅读时长cookie: 成功🎉`, ``) - } $.done(); } @@ -208,14 +178,15 @@ async function QQ_READ() { for (let i = 0; i < QQ_READ_COOKIES.length; i++) { $.log(`\n*************开始QQ账号${i + 1}**************\n`); tz = ''; - if (!QQ_READ_COOKIES[i]["qqreadheaderVal"] || !QQ_READ_COOKIES[i]['qqreadtimeurlVal'] || !QQ_READ_COOKIES[i]['qqreadtimeheaderVal']) { + if (!QQ_READ_COOKIES[i]["qqreadbodyVal"] || !QQ_READ_COOKIES[i]['qqreadtimeurlVal'] || !QQ_READ_COOKIES[i]['qqreadtimeheaderVal']) { $.log(`账号${i + 1}暂未提供脚本执行所需的cookie`); continue } - qqreadheaderVal = QQ_READ_COOKIES[i]['qqreadheaderVal']; + qqreadbodyVal = QQ_READ_COOKIES[i]['qqreadbodyVal']; qqreadtimeurlVal = QQ_READ_COOKIES[i]['qqreadtimeurlVal']; qqreadtimeheaderVal = QQ_READ_COOKIES[i]['qqreadtimeheaderVal']; await qqreadinfo();//用户名 + await qqreadtrack(); // await $.wait(2000) await qqreadconfig();//时长查询 // await $.wait(2000) @@ -261,460 +232,389 @@ async function QQ_READ() { await qqreadwktime();//周时长查询 await qqreadpick();//领周时长奖励 - await showmsg();//通知 + // await showmsg();//通知 } } -//任务列表 +// 任务列表 function qqreadtask() { return new Promise((resolve, reject) => { const toqqreadtaskurl = { - url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/page?fromGuid=', - headers: JSON.parse(qqreadheaderVal), - timeout: 60000 + url: "https://mqqapi.reader.qq.com/mqq/red_packet/user/page?fromGuid=", + headers: JSON.parse(qqreadtimeheaderVal), + + timeout: 60000, }; $.get(toqqreadtaskurl, (error, response, data) => { - if (logs) $.log(`${jsname}, 任务列表: ${data}`) - task = JSON.parse(data) + if (logs) $.log(`${jsname}, 任务列表: ${data}`); + task = JSON.parse(data); + kz += + `【现金余额】:${(task.data.user.amount / 10000).toFixed(2)}元\n` + + `【已开宝箱】:${task.data.treasureBox.count}个\n`; + tz += - '【现金余额】:' + - (task.data.user.amount / 10000).toFixed(2) + - '元\n' + - '【第' + - task.data.invite.issue + - '期】:时间' + - task.data.invite.dayRange + - '\n' + - ' 已邀请' + - task.data.invite.inviteCount + - '人,再邀请' + - task.data.invite.nextInviteConfig.count + - '人获得' + - task.data.invite.nextInviteConfig.amount + - '金币\n' + - '【' + - task.data.taskList[0].title + - '】:' + - task.data.taskList[0].amount + - '金币,' + - task.data.taskList[0].actionText + - '\n' + - '【' + - task.data.taskList[1].title + - '】:' + - task.data.taskList[1].amount + - '金币,' + - task.data.taskList[1].actionText + - '\n' + - '【' + - task.data.taskList[2].title + - '】:' + - task.data.taskList[2].amount + - '金币,' + - task.data.taskList[2].actionText + - '\n' + - '【' + - task.data.taskList[3].title + - '】:' + - task.data.taskList[3].amount + - '金币,' + - task.data.taskList[3].actionText + - '\n' + - '【宝箱任务' + - (task.data.treasureBox.count + 1) + - '】:' + - task.data.treasureBox.tipText + - '\n' + - '【' + task.data.fans.title + - '】:' + - task.data.fans.fansCount + - '个好友,' + - task.data.fans.todayAmount + - '金币\n' + `【现金余额】:${(task.data.user.amount / 10000).toFixed(2)}元\n` + + `【第${task.data.invite.issue}期】:时间${task.data.invite.dayRange}\n` + + ` 已邀请${task.data.invite.inviteCount}人,再邀请${task.data.invite.nextInviteConfig.count}人获得${task.data.invite.nextInviteConfig.amount}金币\n` + + `【${task.data.taskList[0].title}】:${task.data.taskList[0].amount}金币,${task.data.taskList[0].actionText}\n` + + `【${task.data.taskList[1].title}】:${task.data.taskList[1].amount}金币,${task.data.taskList[1].actionText}\n` + + `【${task.data.taskList[2].title}】:${task.data.taskList[2].amount}金币,${task.data.taskList[2].actionText}\n` + + `【${task.data.taskList[3].title}】:${task.data.taskList[3].amount}金币,${task.data.taskList[3].actionText}\n` + + `【宝箱任务${task.data.treasureBox.count + 1}】:${ + task.data.treasureBox.tipText + }\n` + + `【${task.data.fans.title}】:${task.data.fans.fansCount}个好友,${task.data.fans.todayAmount}金币\n`; - resolve() - - }) - - }) + resolve(); + }); + }); } -//用户名 +// 更新 +function qqreadtrack() { + return new Promise((resolve, reject) => { + const body = qqreadbodyVal.replace(new RegExp(/"dis":[0-9]{13}/), `"dis":${new Date().getTime()}`) + const toqqreadtrackurl = { + url: "https://mqqapi.reader.qq.com/log/v4/mqq/track", + headers: JSON.parse(qqreadtimeheaderVal), + body: body, + timeout: 60000, + }; + $.post(toqqreadtrackurl, (error, response, data) => { + if (logs) $.log(`${jsname}, 更新: ${data}`); + let track = JSON.parse(data); + tz += `【数据更新】:更新${track.msg}\n`; + resolve(); + }); + }); +} + + +// 用户名 function qqreadinfo() { return new Promise((resolve, reject) => { const toqqreadinfourl = { - url: qqreadurlVal, - headers: JSON.parse(qqreadheaderVal), - timeout: 60000 + url: "https://mqqapi.reader.qq.com/mqq/user/init", + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, }; $.get(toqqreadinfourl, (error, response, data) => { - if (logs) $.log(`${jsname}, 用户名: ${data}`) - const info = JSON.parse(data) - tz += - '【用户信息】:' + info.data.user.nickName + '\n' + if (logs) $.log(`${jsname}, 用户名: ${data}`); + let info = JSON.parse(data); + kz += `\n========== 【${info.data.user.nickName}】 ==========\n`; + tz += `\n========== 【${info.data.user.nickName}】 ==========\n`; - resolve() - }) - }) + resolve(); + }); + }); } - -//阅豆签到 +// 阅豆签到 function qqreadtake() { return new Promise((resolve, reject) => { const toqqreadtakeurl = { - url: 'https://mqqapi.reader.qq.com/mqq/sign_in/user', - headers: JSON.parse(qqreadheaderVal), - timeout: 60000 + url: "https://mqqapi.reader.qq.com/mqq/sign_in/user", + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, }; $.post(toqqreadtakeurl, (error, response, data) => { - if (logs) $.log(`${jsname}, 阅豆签到: ${data}`) - let take = JSON.parse(data) + if (logs) $.log(`${jsname}, 阅豆签到: ${data}`); + let take = JSON.parse(data); if (take.data.takeTicket > 0) { - tz += - '【阅豆签到】:获得' + take.data.takeTicket + '豆\n' + tz += `【阅豆签到】:获得${take.data.takeTicket}豆\n`; } - resolve() - }) - }) + resolve(); + }); + }); } - -//阅读时长任务 +// 阅读时长任务 function qqreadconfig() { return new Promise((resolve, reject) => { const toqqreadconfigurl = { - url: 'https://mqqapi.reader.qq.com/mqq/page/config?router=%2Fpages%2Fbook-read%2Findex&options=', - headers: JSON.parse(qqreadheaderVal), + url: + "https://mqqapi.reader.qq.com/mqq/page/config?router=%2Fpages%2Fbook-read%2Findex&options=", + headers: JSON.parse(qqreadtimeheaderVal), }; $.get(toqqreadconfigurl, (error, response, data) => { - if (logs) $.log(`${jsname}, 阅读时长查询: ${data}`) - config = JSON.parse(data) + if (logs) $.log(`${jsname}, 阅读时长查询: ${data}`); + config = JSON.parse(data); if (config.code == 0) - tz += '【时长查询】:今日阅读' + (config.data.pageParams.todayReadSeconds / 60).toFixed(0) + '分钟\n' + tz += `【时长查询】:今日阅读${( + config.data.pageParams.todayReadSeconds / 60 + ).toFixed(0)}分钟\n`; - - resolve() - }) - }) + resolve(); + }); + }); } - -//阅读时长 +// 阅读时长 function qqreadtime() { return new Promise((resolve, reject) => { const toqqreadtimeurl = { url: qqreadtimeurlVal.replace(/readTime=/g, `readTime=${TIME}`), headers: JSON.parse(qqreadtimeheaderVal), - }; - $.get(toqqreadtimeurl, (error, response, data) => { - if (logs) $.log(`${jsname}, qqreadtime-阅读时长: ${data}`) - let time = JSON.parse(data) - if (time && time.code == 0) tz += '【阅读时长】:上传' + TIME / 6 + '分钟\n' - resolve() - }) - }) + if (logs) $.log(`${jsname}, 阅读时长: ${data}`); + let time = JSON.parse(data); + if (time.code == 0) tz += `【阅读时长】:上传${TIME / 6}分钟\n`; + + resolve(); + }); + }); } - -//阅读金币1 +// 阅读金币1 function qqreadssr1() { return new Promise((resolve, reject) => { const toqqreadssr1url = { url: `https://mqqapi.reader.qq.com/mqq/red_packet/user/read_time?seconds=30`, - headers: JSON.parse(qqreadheaderVal), - timeout: 60000 + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, }; - if (config.data.pageParams.todayReadSeconds / 60 >= 1) { - + if (config.data && config.data.pageParams.todayReadSeconds / 60 >= 1) { $.get(toqqreadssr1url, (error, response, data) => { - if (logs) $.log(`${jsname}, 金币奖励1: ${data}`) - let ssr1 = JSON.parse(data) + if (logs) $.log(`${jsname}, 金币奖励1: ${data}`); + let ssr1 = JSON.parse(data); if (ssr1.data.amount > 0) - tz += '【阅读金币1】获得' + ssr1.data.amount + '金币\n' + tz += `【阅读金币1】获得${ssr1.data.amount}金币\n`; - - resolve() - }) + resolve(); + }); } - resolve() - }) + }); } - -//阅读金币2 +// 阅读金币2 function qqreadssr2() { return new Promise((resolve, reject) => { const toqqreadssr2url = { url: `https://mqqapi.reader.qq.com/mqq/red_packet/user/read_time?seconds=300`, - headers: JSON.parse(qqreadheaderVal), - timeout: 60000 + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, }; - if (config.data.pageParams.todayReadSeconds / 60 >= 5) { - + if (config.data && config.data.pageParams.todayReadSeconds / 60 >= 5) { $.get(toqqreadssr2url, (error, response, data) => { - if (logs) $.log(`${jsname}, 金币奖励2: ${data}`) - ssr2 = JSON.parse(data) - if (ssr2.code === 0) { - if (ssr2.data.amount > 0) tz += '【阅读金币2】获得' + ssr2.data.amount + '金币\n' - } - resolve() - }) + if (logs) $.log(`${jsname}, 金币奖励2: ${data}`); + ssr2 = JSON.parse(data); + if (ssr2.data.amount > 0) + tz += `【阅读金币2】获得${ssr2.data.amount}金币\n`; + + resolve(); + }); } - resolve() - }) + }); } - -//阅读金币3 +// 阅读金币3 function qqreadssr3() { return new Promise((resolve, reject) => { const toqqreadssr3url = { url: `https://mqqapi.reader.qq.com/mqq/red_packet/user/read_time?seconds=1800`, - headers: JSON.parse(qqreadheaderVal), - timeout: 60000 + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, }; - - if (config.data.pageParams.todayReadSeconds / 60 >= 30) { - + if (config.data && config.data.pageParams.todayReadSeconds / 60 >= 30) { $.get(toqqreadssr3url, (error, response, data) => { - if (logs) $.log(`${jsname}, 金币奖励3: ${data}`) - let ssr3 = JSON.parse(data) - if (ssr3.code === 0) { - if (ssr3.data.amount > 0) tz += '【阅读金币3】获得' + ssr3.data.amount + '金币\n' - } - resolve() - }) + if (logs) $.log(`${jsname}, 金币奖励3: ${data}`); + let ssr3 = JSON.parse(data); + if (ssr3.data.amount > 0) + tz += `【阅读金币3】获得${ssr3.data.amount}金币\n`; + + resolve(); + }); } - resolve() - }) + }); } - -//金币签到 +// 金币签到 function qqreadsign() { return new Promise((resolve, reject) => { const toqqreadsignurl = { - url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/clock_in/page', - headers: JSON.parse(qqreadheaderVal), - timeout: 60000 + url: "https://mqqapi.reader.qq.com/mqq/red_packet/user/clock_in/page", + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, }; $.get(toqqreadsignurl, (error, response, data) => { - if (logs) $.log(`${jsname}, 金币签到: ${data}`) - let sign = JSON.parse(data) - + if (logs) $.log(`${jsname}, 金币签到: ${data}`); + sign = JSON.parse(data); if (sign.data.videoDoneFlag) { - tz += - '【金币签到】:获得' + sign.data.todayAmount + '金币\n' + tz += `【金币签到】:获得${sign.data.todayAmount}金币\n`; } - - - resolve() - }) - }) + resolve(); + }); + }); } - -//金币签到翻倍 +// 金币签到翻倍 function qqreadsign2() { return new Promise((resolve, reject) => { const toqqreadsign2url = { - url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/clock_in_video', - headers: JSON.parse(qqreadheaderVal), - timeout: 60000 + url: "https://mqqapi.reader.qq.com/mqq/red_packet/user/clock_in_video", + + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, }; $.get(toqqreadsign2url, (error, response, data) => { - if (logs) $.log(`${jsname}, 金币签到翻倍: ${data}`) - let sign2 = JSON.parse(data) - + if (logs) $.log(`${jsname}, 金币签到翻倍: ${data}`); + let sign2 = JSON.parse(data); if (sign2.code == 0) { - tz += - '【签到翻倍】:获得' + sign2.data.amount + '金币\n' + tz += `【签到翻倍】:获得${sign2.data.amount}金币\n`; } - resolve() - }) - }) + resolve(); + }); + }); } - -//每日阅读 +// 每日阅读 function qqreaddayread() { return new Promise((resolve, reject) => { const toqqreaddayreadurl = { - url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/read_book', - headers: JSON.parse(qqreadheaderVal), - timeout: 60000 + url: "https://mqqapi.reader.qq.com/mqq/red_packet/user/read_book", + + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, }; $.get(toqqreaddayreadurl, (error, response, data) => { - if (logs) $.log(`${jsname}, 每日阅读: ${data}`) - let dayread = JSON.parse(data) + if (logs) $.log(`${jsname}, 每日阅读: ${data}`); + let dayread = JSON.parse(data); if (dayread.code == 0) { - tz += - '【每日阅读】:获得' + dayread.data.amount + '金币\n' - + tz += `【每日阅读】:获得${dayread.data.amount}金币\n`; } - resolve() - }) - }) + resolve(); + }); + }); } - -//视频奖励 +// 视频奖励 function qqreadvideo() { return new Promise((resolve, reject) => { const toqqreadvideourl = { - url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/watch_video', - headers: JSON.parse(qqreadheaderVal), - timeout: 60000 + url: "https://mqqapi.reader.qq.com/mqq/red_packet/user/watch_video", + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, }; $.get(toqqreadvideourl, (error, response, data) => { - if (logs) $.log(`${jsname}, 视频奖励: ${data}`) - let video = JSON.parse(data) - + if (logs) $.log(`${jsname}, 视频奖励: ${data}`); + let video = JSON.parse(data); if (video.code == 0) { - tz += - '【视频奖励】:获得' + video.data.amount + '金币\n' - + tz += `【视频奖励】:获得${video.data.amount}金币\n`; } - resolve() - }) - }) + resolve(); + }); + }); } - -//宝箱奖励 +// 宝箱奖励 function qqreadbox() { return new Promise((resolve, reject) => { - const toqqreadboxurl = { - url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/treasure_box', - - headers: JSON.parse(qqreadheaderVal), - timeout: 60000 + url: "https://mqqapi.reader.qq.com/mqq/red_packet/user/treasure_box", + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, }; $.get(toqqreadboxurl, (error, response, data) => { - if (logs) $.log(`${jsname}, 宝箱奖励: ${data}`) - const box = JSON.parse(data) - + if (logs) $.log(`${jsname}, 宝箱奖励: ${data}`); + let box = JSON.parse(data); if (box.data.count >= 0) { - tz += - '【宝箱奖励' + box.data.count + '】:获得' + box.data.amount + '金币\n' - + tz += `【宝箱奖励${box.data.count}】:获得${box.data.amount}金币\n`; } - resolve() - }) - }) + resolve(); + }); + }); } -//宝箱奖励翻倍 +// 宝箱奖励翻倍 function qqreadbox2() { return new Promise((resolve, reject) => { - const toqqreadbox2url = { - url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/treasure_box_video', + url: + "https://mqqapi.reader.qq.com/mqq/red_packet/user/treasure_box_video", - headers: JSON.parse(qqreadheaderVal), - timeout: 60000 + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, }; $.get(toqqreadbox2url, (error, response, data) => { - if (logs) $.log(`${jsname}, 宝箱奖励翻倍: ${data}`) - let box2 = JSON.parse(data) - + if (logs) $.log(`${jsname}, 宝箱奖励翻倍: ${data}`); + let box2 = JSON.parse(data); if (box2.code == 0) { - tz += - '【宝箱翻倍】:获得' + box2.data.amount + '金币\n' + tz += `【宝箱翻倍】:获得${box2.data.amount}金币\n`; } - resolve() - }) - }) + resolve(); + }); + }); } -//本周阅读时长 +// 本周阅读时长 function qqreadwktime() { return new Promise((resolve, reject) => { - const toqqreadwktimeurl = { - url: `https://mqqapi.reader.qq.com/mqq/v1/bookShelfInit`, - - headers: JSON.parse(qqreadheaderVal), - + headers: JSON.parse(qqreadtimeheaderVal), }; - $.get(toqqreadwktimeurl, (error, response, data) => { - if (logs) $.log(`${jsname}, qqreadwktime 阅读时长: ${data}`) - wktime = JSON.parse(data) - if (wktime.code == 0) tz += '【本周阅读时长】:' + wktime.data.readTime + '分钟\n' - resolve() - }) - }) + if (logs) $.log(`${jsname}, 阅读时长: ${data}`); + wktime = JSON.parse(data); + if (wktime.code == 0) + tz += `【本周阅读时长】:${wktime.data.readTime}分钟\n`; + + resolve(); + }); + }); } - -//本周阅读时长奖励任务 +// 本周阅读时长奖励任务 function qqreadpick() { return new Promise((resolve, reject) => { const toqqreadpickurl = { url: `https://mqqapi.reader.qq.com/mqq/pickPackageInit`, - headers: JSON.parse(qqreadheaderVal), + headers: JSON.parse(qqreadtimeheaderVal), }; - - if (wktime.data.readTime >= wktimess) { + if (wktime.data.readTime >= wktimess && wktime.data.readTime <= 1250) { $.get(toqqreadpickurl, (error, response, data) => { - if (logs) $.log(`${jsname},周阅读时长奖励任务: ${data}`) - let pick = JSON.parse(data) - if (pick.data[7].isPick == true) - tz += '【周时长奖励】:已全部领取\n' + if (logs) $.log(`${jsname},周阅读时长奖励任务: ${data}`); + let pick = JSON.parse(data); + if (pick.data[7].isPick == true) tz += "【周时长奖励】:已全部领取\n"; + for (let i = 0; i < pick.data.length; i++) { setTimeout(() => { - var pickid = pick.data[i].readTime - var Packageid = ['10', '10', '20', '30', '50', '80', '100', '120'] + const pickid = pick.data[i].readTime; + const Packageid = [ + "10", + "10", + "20", + "30", + "50", + "80", + "100", + "120", + ]; const toqqreadPackageurl = { url: `https://mqqapi.reader.qq.com/mqq/pickPackage?readTime=${pickid}`, - headers: JSON.parse(qqreadheaderVal), - timeout: 60000 + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, }; $.get(toqqreadPackageurl, (error, response, data) => { - if (logs) $.log(`${jsname}, 领周阅读时长: ${data}`) - let Package = JSON.parse(data) + if (logs) $.log(`${jsname}, 领周阅读时长: ${data}`); + Package = JSON.parse(data); if (Package.code == 0) - tz += '【周时长奖励' + (i + 1) + '】:领取' + Packageid[i] + '阅豆\n' - }) - - }, i * 100) + tz += `【周时长奖励${i + 1}】:领取${Packageid[i]}阅豆\n`; + }); + }, i * 100); } - - }) - resolve() + }); + resolve(); } - resolve() - }) -} - - -function showmsg() { - return new Promise(async resolve => { - console.log(tz) - - if (notifyInterval == 1) - $.msg(jsname, '', tz)//显示所有通知 - - else if (notifyInterval == 2 && task.data.treasureBox.doneFlag == 0) - $.msg(jsname, '', tz)//宝箱领取成功通知 - - else if (notifyInterval == 3 && task.data.treasureBox.count == 0 || task.data.treasureBox.count == 15 || task.data.treasureBox.count == 30 || task.data.treasureBox.count == 45 || task.data.treasureBox.count == 60) - $.msg(jsname, '', tz)//宝箱每15次通知一次 - resolve() - }) + }); } diff --git a/jdDreamFactoryShareCodes.js b/jdDreamFactoryShareCodes.js index 5f591dc..6114855 100644 --- a/jdDreamFactoryShareCodes.js +++ b/jdDreamFactoryShareCodes.js @@ -4,12 +4,12 @@ 支持京东N个账号 */ //云服务器腾讯云函数等NOde.js用户在此处填写东东萌宠的好友码。 -// github action用户的好友互助码填写到Action->Settings->Secrets->new Secret里面(Name填写 PLANT_BEAN_SHARECODES(此处的Name必须按此来写,不能随意更改),内容处填写互助码,填写规则如下) +// github action用户的好友互助码填写到Action->Settings->Secrets->new Secret里面(Name填写 DREAM_FACTORY_SHARE_CODES(此处的Name必须按此来写,不能随意更改),内容处填写互助码,填写规则如下) // 同一个京东账号的好友互助码用@符号隔开,不同京东账号之间用&符号或者换行隔开,下面给一个示例 // 如: 京东账号1的shareCode1@京东账号1的shareCode2&京东账号2的shareCode1@京东账号2的shareCode2 let shareCodes = [ - 'V5LkjP4WRyjeCKR9VRwcRX0bBuTz7MEK0-E99EJ7u0k=@Bo-jnVs_m9uBvbRzraXcSA==',//账号一的好友shareCode,不同好友中间用@符号隔开 - '1uzRU5HkaUgvy0AB5Q9VUg==@PDPM257r_KuQhil2Y7koNw==',//账号二的好友shareCode,不同好友中间用@符号隔开 + 'V5LkjP4WRyjeCKR9VRwcRX0bBuTz7MEK0-E99EJ7u0k=@Bo-jnVs_m9uBvbRzraXcSA==@-OvElMzqeyeGBWazWYjI1Q==',//账号一的好友shareCode,不同好友中间用@符号隔开 + '1uzRU5HkaUgvy0AB5Q9VUg==@PDPM257r_KuQhil2Y7koNw==@-OvElMzqeyeGBWazWYjI1Q==',//账号二的好友shareCode,不同好友中间用@符号隔开 ] // 判断github action里面是否有东东萌宠互助码 if (process.env.DREAM_FACTORY_SHARE_CODES) { diff --git a/jd_dreamFactory.js b/jd_dreamFactory.js index cf4a173..5a9c6b9 100644 --- a/jd_dreamFactory.js +++ b/jd_dreamFactory.js @@ -34,7 +34,7 @@ const randomCount = $.isNode() ? 20 : 5; const tuanActiveId = `gaVXW_NJ0KPEA2LyUhoXzA==`; const jxOpenUrl = `openjd://virtual?params=%7B%20%22category%22:%20%22jump%22,%20%22des%22:%20%22m%22,%20%22url%22:%20%22https://wqsd.jd.com/pingou/dream_factory/index.html%22%20%7D`; let cookiesArr = [], cookie = '', message = ''; -const inviteCodes = ['V5LkjP4WRyjeCKR9VRwcRX0bBuTz7MEK0-E99EJ7u0k=', 'PDPM257r_KuQhil2Y7koNw==', "gB99tYLjvPcEFloDgamoBw=="]; +const inviteCodes = ['V5LkjP4WRyjeCKR9VRwcRX0bBuTz7MEK0-E99EJ7u0k=', 'PDPM257r_KuQhil2Y7koNw==', "gB99tYLjvPcEFloDgamoBw==", '-OvElMzqeyeGBWazWYjI1Q==']; const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; if ($.isNode()) { Object.keys(jdCookieNode).forEach((item) => { From 3a50e770e00296686de3f26165cb2f32c5589cf9 Mon Sep 17 00:00:00 2001 From: lxk0301 <778732665@qq.com> Date: Wed, 9 Dec 2020 14:56:56 +0800 Subject: [PATCH 04/10] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backUp/qqread.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/backUp/qqread.js b/backUp/qqread.js index 48c6d37..320da6d 100644 --- a/backUp/qqread.js +++ b/backUp/qqread.js @@ -6,7 +6,7 @@ 多个账号 对应三个环境变量/secret 使用@符号或者换行隔开 iOS可使用BoxJs可使用此订阅修改复制所需的环境变量 https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/mySelf.boxjs.json 环境变量与BoxJs里面对应关系 - QQ_READ_HEADER_VAL ------》 qqreadhd + QQ_READ_HEADER_VAL ------》 qqreadbodyVal QQ_READ_TIME_URL_VAL ------》 qqreadtimeurl QQ_READ_TIME_HEADER_VAL ------》 qqreadtimehd ***************************************************************************************************************** @@ -68,7 +68,7 @@ const logs = 1; //0为关闭日志,1为开启 const TIME = 30//单次时长上传限制,默认5分钟 const maxtime = 20//每日上传时长限制,默认20小时 const wktimess = 1200//周奖励领取标准,默认1200分钟 -let tz = '' +let tz = '',kz; const qqreadbodyValKey = 'qqreadbodyVal' let qqreadbodyVal = $.getdata(qqreadbodyValKey) @@ -232,10 +232,12 @@ async function QQ_READ() { await qqreadwktime();//周时长查询 await qqreadpick();//领周时长奖励 - // await showmsg();//通知 + await showmsg();//通知 } } - +function showmsg() { + $.msg(jsname, "", tz); // 宝箱每15次通知一次 +} // 任务列表 function qqreadtask() { return new Promise((resolve, reject) => { @@ -359,7 +361,7 @@ function qqreadtime() { headers: JSON.parse(qqreadtimeheaderVal), }; $.get(toqqreadtimeurl, (error, response, data) => { - if (logs) $.log(`${jsname}, 阅读时长: ${data}`); + if (logs) $.log(`${jsname}, 阅读时长qqreadtime: ${data}`); let time = JSON.parse(data); if (time.code == 0) tz += `【阅读时长】:上传${TIME / 6}分钟\n`; @@ -614,6 +616,7 @@ function qqreadpick() { }); resolve(); } + resolve(); }); } From 429072d3f6d40c8ef68956f8693a7ddf377aaa64 Mon Sep 17 00:00:00 2001 From: lxk0301 <778732665@qq.com> Date: Wed, 9 Dec 2020 17:42:55 +0800 Subject: [PATCH 05/10] =?UTF-8?q?=E5=9C=88x=E5=92=8Cdocker=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=96=B0=E5=A2=9E=E8=84=9A=E6=9C=AC,=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E8=84=9A=E6=9C=AC=E5=86=85=E7=BD=AE=E8=AF=B4=E6=98=8E?= =?UTF-8?q?(=E4=BC=9A=E7=BB=99=E5=86=85=E7=BD=AE=E7=A0=81=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E5=8A=A9=E5=8A=9B)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- QuantumultX/lxk0301_gallery.json | 1 + docker/crontab_list.sh | 6 +++++- docker/crontab_list_ts.sh | 4 ++++ jd_apple_live.js | 3 ++- jd_digital_floor.js | 1 + jd_health.js | 1 + jd_pubg.js | 5 +++-- jd_split.js | 1 + 8 files changed, 18 insertions(+), 4 deletions(-) diff --git a/QuantumultX/lxk0301_gallery.json b/QuantumultX/lxk0301_gallery.json index 91f4420..1db5c15 100644 --- a/QuantumultX/lxk0301_gallery.json +++ b/QuantumultX/lxk0301_gallery.json @@ -32,6 +32,7 @@ "10 7 * * * https://raw.githubusercontent.com/lxk0301/jd_scripts/master/jd_digital_floor.js, tag=数码加购京豆, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_redPacket.png", "0 0,9,11,13,15,17,19,20,21,23 * * * https://raw.githubusercontent.com/lxk0301/jd_scripts/master/jd_live_redrain.js, tag=直播红包雨, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_redPacket.png", "10 0 * * * https://raw.githubusercontent.com/lxk0301/jd_scripts/master/jd_apple_live.js, tag=苹果抽奖机, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_redPacket.png", + "10 1 * * * https://raw.githubusercontent.com/lxk0301/jd_scripts/master/jd_pubg.js, tag=PUBG, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_redPacket.png", "15 17 * * * https://raw.githubusercontent.com/lxk0301/jd_scripts/master/backUp/xmSports.js, tag=小米运动, img-url=https://raw.githubusercontent.com/58xinian/icon/master/xmyd.png" ] } diff --git a/docker/crontab_list.sh b/docker/crontab_list.sh index 4c656d9..edde6fd 100644 --- a/docker/crontab_list.sh +++ b/docker/crontab_list.sh @@ -17,7 +17,11 @@ # 直播红包雨(2020.12.12活动过期) 0 0,9,11,13,15,17,19,20,21,23 * * * node /scripts/jd_live_redrain.js >> /scripts/logs/jd_live_redrain.log 2>&1 # 数码加购京豆(2020.12.11活动过期) - 8 0 * * * node /scripts/jd_digital_floor.js >> /scripts/logs/jd_digital_floor.log 2>&1 +8 0 * * * node /scripts/jd_digital_floor.js >> /scripts/logs/jd_digital_floor.log 2>&1 +# jd_apple_live +8 0,20 * * * node /scripts/jd_apple_live.js >> /scripts/logs/jd_apple_live.log 2>&1 +# jd_pubg +8 1,20 * * * node /scripts/jd_pubg.js >> /scripts/logs/jd_pubg.log 2>&1 ##############长期活动############## # 签到 diff --git a/docker/crontab_list_ts.sh b/docker/crontab_list_ts.sh index b1dd621..90039c3 100644 --- a/docker/crontab_list_ts.sh +++ b/docker/crontab_list_ts.sh @@ -18,6 +18,10 @@ 0 0,9,11,13,15,17,19,20,21,23 * * * node /scripts/jd_live_redrain.js |ts >> /scripts/logs/jd_live_redrain.log 2>&1 # 数码加购京豆(2020.12.11活动过期) 8 0 * * * node /scripts/jd_digital_floor.js |ts >> /scripts/logs/jd_digital_floor.log 2>&1 +# jd_apple_live +8 0,20 * * * node /scripts/jd_apple_live.js |ts >> /scripts/logs/jd_apple_live.log 2>&1 +# jd_pubg +8 1,20 * * * node /scripts/jd_pubg.js |ts >> /scripts/logs/jd_pubg.log 2>&1 ##############长期活动############## # 签到 diff --git a/jd_apple_live.js b/jd_apple_live.js index 32ea767..0908114 100644 --- a/jd_apple_live.js +++ b/jd_apple_live.js @@ -1,5 +1,6 @@ /* 苹果抽奖机 +脚本会给内置的码进行助力 活动于2020-12-14日结束 活动地址:https://h5.m.jd.com/babelDiy/Zeus/2zwQnu4WHRNfqMSdv69UPgpZMnE2/index.html/ 已支持IOS双京东账号,Node.js支持N个京东账号 @@ -37,7 +38,7 @@ if ($.isNode()) { cookiesArr.push(...[$.getdata('CookieJD'), $.getdata('CookieJD2')]); } const JD_API_HOST = 'https://api.m.jd.com/client.action'; -const inviteCodes = [`P04z54XCjVUm4aW5nJcXCCyoR8C6s-kRmWs@P04z54XCjVUm4aW5m9cZ2bx3y5Ow`, `P04z54XCjVUm4aW5nJcXCCyoR8C6s-kRmWs@P04z54XCjVUm4aW5m9cZ2bx3y5Ow`]; +const inviteCodes = [`P04z54XCjVUm4aW5nJcXCCyoR8C6s-kRmWs@P04z54XCjVUm4aW5m9cZ2bx3y5Ow@P04z54XCjVUm4aW5u2ak7ZCdan1BeYMuZ9HwF34gJjW@P04z54XCjVUm4aW5m9cZ2T6jChKkkjZEdhiKUY`, `P04z54XCjVUm4aW5nJcXCCyoR8C6s-kRmWs@P04z54XCjVUm4aW5m9cZ2bx3y5Ow`]; !(async () => { await requireConfig(); if (!cookiesArr[0]) { diff --git a/jd_digital_floor.js b/jd_digital_floor.js index 8763900..4d518ee 100644 --- a/jd_digital_floor.js +++ b/jd_digital_floor.js @@ -1,5 +1,6 @@ /* 数码加购京豆 +脚本会给内置的码进行助力 共计25京豆,一天运行一次即可 活动时间:2020-12-4 到 2020-12-11 活动入口:https://prodev.m.jd.com/mall/active/nKxVyPnuLwAsQSTfidZ9z4RKVZy/index.html#/ diff --git a/jd_health.js b/jd_health.js index bcfc2a2..bc43555 100644 --- a/jd_health.js +++ b/jd_health.js @@ -1,5 +1,6 @@ /* 健康抽奖机 ,活动于2020-12-31日结束 +脚本会给内置的码进行助力 活动地址:https://h5.m.jd.com/babelDiy/Zeus/3HBUP66Gnx92mRt2bXbT9VamYWSx/index.html 已支持IOS双京东账号,Node.js支持N个京东账号 脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js diff --git a/jd_pubg.js b/jd_pubg.js index 2bea150..ed8b412 100644 --- a/jd_pubg.js +++ b/jd_pubg.js @@ -1,5 +1,6 @@ /* -PUBG +PUBG ,运行时间会比较久,Surge请加大timeout时间 +脚本会给内置的码进行助力 活动于2020-12-13日结束 活动地址:https://starsingle.m.jd.com/static/index.html#/?fromChangeSkinNum=PUBG 已支持IOS双京东账号,Node.js支持N个京东账号 @@ -133,7 +134,7 @@ if ($.isNode()) { cookiesArr.push(...[$.getdata('CookieJD'), $.getdata('CookieJD2')]); } const JD_API_HOST = 'https://starsingle.m.jd.com/guardianstar/'; -const inviteCodes = ['65561ad5-af72-4d1c-a5be-37b3de372b67@2d5f579d-e6d1-479e-931f-c275d602caf5','65561ad5-af72-4d1c-a5be-37b3de372b67@2d5f579d-e6d1-479e-931f-c275d602caf5'] +const inviteCodes = ['65561ad5-af72-4d1c-a5be-37b3de372b67@2d5f579d-e6d1-479e-931f-c275d602caf5@a3551e1d-fb07-40f0-b9ad-d50e4b480098@696cfa20-3719-442a-a331-0e07beaeb375@718868ed-2202-465d-b3a4-54e76b30d02a','65561ad5-af72-4d1c-a5be-37b3de372b67@2d5f579d-e6d1-479e-931f-c275d602caf5'] !(async () => { await requireConfig(); if (!cookiesArr[0]) { diff --git a/jd_split.js b/jd_split.js index 9ff7f6b..f2b4e44 100644 --- a/jd_split.js +++ b/jd_split.js @@ -1,5 +1,6 @@ /* 金榜年终奖 +脚本会给内置的码进行助力 活动时间:2020-12-12日结束 活动入口:京东APP首页右边浮动飘窗 已支持IOS双京东账号,Node.js支持N个京东账号 From c65b305c9fe57bd7be94c7ed5dc6e19be3bd1fbb Mon Sep 17 00:00:00 2001 From: lxk0301 <778732665@qq.com> Date: Wed, 9 Dec 2020 18:16:49 +0800 Subject: [PATCH 06/10] update --- jd_pubg.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jd_pubg.js b/jd_pubg.js index ed8b412..4459bd8 100644 --- a/jd_pubg.js +++ b/jd_pubg.js @@ -414,7 +414,7 @@ function taskUrl(function_id, body = {}) { 'cache-control': 'no-cache', "origin": "https://starsingle.m.jd.com", 'Content-Type': 'application/x-www-form-urlencoded', - 'dnt': 1, + 'dnt': '1', 'pragma': 'no-cache', 'referer': 'https://starsingle.m.jd.com/static/index.html', 'timestamp': `${t}`, @@ -437,7 +437,7 @@ function taskPostUrl(body = "{}", functionId = 'doTask') { 'cache-control': 'no-cache', "origin": "https://starsingle.m.jd.com", 'Content-Type': 'application/x-www-form-urlencoded', - 'dnt': 1, + 'dnt': '1', 'pragma': 'no-cache', 'referer': 'https://starsingle.m.jd.com/static/index.html', 'timestamp': `${t}`, From 0b9bec7295421a0bfebf5ce03857af58b50b7c6d Mon Sep 17 00:00:00 2001 From: lxk0301 <778732665@qq.com> Date: Thu, 10 Dec 2020 10:42:46 +0800 Subject: [PATCH 07/10] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BC=81=E9=B9=85?= =?UTF-8?q?=E9=98=85=E8=AF=BB=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backUp/qqread.js | 86 ++++++++++++++++++++++++++------------------ jd_dreamFactory.js | 5 ++- jd_lotteryMachine.js | 5 ++- jd_small_home.js | 5 ++- jd_superMarket.js | 5 ++- 5 files changed, 67 insertions(+), 39 deletions(-) diff --git a/backUp/qqread.js b/backUp/qqread.js index 320da6d..0c5903c 100644 --- a/backUp/qqread.js +++ b/backUp/qqread.js @@ -60,7 +60,7 @@ http-request https:\/\/mqqapi\.reader\.qq\.com\/mqq\/addReadTimeWithBid? script- const jsname = '企鹅读书' const $ = Env(jsname) -let task = '', config, ssr2 = '', wktime; +let task = '', config, ssr2 = '', wktime, day = 0; console.log(`\n========= 脚本执行时间(TM):${new Date(new Date().getTime() + 0 * 60 * 60 * 1000).toLocaleString('zh', {hour12: false})} =========\n`) const logs = 1; //0为关闭日志,1为开启 @@ -186,58 +186,73 @@ async function QQ_READ() { qqreadtimeurlVal = QQ_READ_COOKIES[i]['qqreadtimeurlVal']; qqreadtimeheaderVal = QQ_READ_COOKIES[i]['qqreadtimeheaderVal']; await qqreadinfo();//用户名 + await qqreadwktime();//周时长查询 await qqreadtrack(); - // await $.wait(2000) await qqreadconfig();//时长查询 - // await $.wait(2000) await qqreadtask();//任务列表 - + if (config.data.pageParams.todayReadSeconds / 3600 <= maxtime) { + await qqreadtime();// 上传时长 + } + await qqreadpick();//领周时长奖励 if (task.data.taskList[0].doneFlag == 0) { - // await $.wait(2000) await qqreaddayread();//阅读任务 } - if (task.data.taskList[2].doneFlag == 0) { - // await $.wait(2000) - await qqreadsign();//金币签到 - // await $.wait(2000) - await qqreadtake();//阅豆签到 - // await $.wait(2000) - await qqreadsign2();//签到翻倍 + if (task.data.taskList[1].doneFlag == 0) { + await $.wait(5000) + await qqreadssr1();//阅读金币1 + } + if (task.data.taskList[2].doneFlag == 0) { + await qqreadsign();//金币签到 + await qqreadtake();//阅豆签到 + } + if (task.data.taskList[3].doneFlag == 0) { + await qqreadvideo();//视频奖励 } - if (task.data.treasureBox.doneFlag == 0) { - // await $.wait(2000) await qqreadbox();//宝箱 } if (task.data.taskList[1].doneFlag == 0) { - // await $.wait(2000) - await qqreadssr1();//阅读金币1 - await $.wait(3000) + await $.wait(5000) await qqreadssr2();//阅读金币2 + } + if (task.data.taskList[2].doneFlag == 0) { + await qqreadsign2();//金币签到 + } + + if (task.data.treasureBox.videoDoneFlag == 0) { + await qqreadbox2();//宝箱翻倍 + } + if (task.data.taskList[1].doneFlag == 0) { await $.wait(5000) await qqreadssr3();//阅读金币3 } - if (task.data.taskList[3].doneFlag == 0) { - // await $.wait(2000) - await qqreadvideo();//视频奖励 + if (task.data.user.amount >= 100000) { + await qqreadwithdraw(); } - if (task.data.treasureBox.videoDoneFlag == 0) { - // await $.wait(2000) - await qqreadbox2();//宝箱翻倍 - } - if (config.data.pageParams.todayReadSeconds / 3600 <= maxtime) { - // await $.wait(2000) - await qqreadtime(); - } - - await qqreadwktime();//周时长查询 - await qqreadpick();//领周时长奖励 await showmsg();//通知 } } function showmsg() { $.msg(jsname, "", tz); // 宝箱每15次通知一次 } +//提现 +function qqreadwithdraw() { + return new Promise((resolve, reject) => { + const toqqreadwithdrawurl = { + url: "https://mqqapi.reader.qq.com/mqq/red_packet/user/withdraw?amount=100000", + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, + }; + $.post(toqqreadwithdrawurl, (error, response, data) => { + if (logs) $.log(`${jsname}, 提现: ${data}`); + let withdraw = JSON.parse(data); + if (withdraw.data.code == 0) + tz += `【现金提现】:成功提现10元\n`; + kz += `【现金提现】:成功提现10元\n`; + resolve(); + }); + }); +} // 任务列表 function qqreadtask() { return new Promise((resolve, reject) => { @@ -384,10 +399,9 @@ function qqreadssr1() { let ssr1 = JSON.parse(data); if (ssr1.data.amount > 0) tz += `【阅读金币1】获得${ssr1.data.amount}金币\n`; - - resolve(); }); } + resolve(); }); } @@ -406,9 +420,10 @@ function qqreadssr2() { if (ssr2.data.amount > 0) tz += `【阅读金币2】获得${ssr2.data.amount}金币\n`; - resolve(); + }); } + resolve(); }); } @@ -427,9 +442,10 @@ function qqreadssr3() { if (ssr3.data.amount > 0) tz += `【阅读金币3】获得${ssr3.data.amount}金币\n`; - resolve(); + }); } + resolve(); }); } diff --git a/jd_dreamFactory.js b/jd_dreamFactory.js index 5a9c6b9..bca7e0b 100644 --- a/jd_dreamFactory.js +++ b/jd_dreamFactory.js @@ -1010,6 +1010,7 @@ function CreateTuan() { async function joinLeaderTuan() { await updateTuanIds(); if (!$.tuanIdS) await updateTuanIdsCDN(); + if (!$.tuanIdS) await updateTuanIdsCDN('https://cdn.jsdelivr.net/gh/lxk0301/updateTeam@master/jd_updateFactoryTuanId.json'); for (let tuanId of $.tuanIdS.tuanIds) { if (!tuanId) continue await JoinTuan(tuanId); @@ -1184,7 +1185,7 @@ function updateTuanIds(url = 'https://raw.githubusercontent.com/lxk0301/updateTe }) } function updateTuanIdsCDN(url = 'https://raw.fastgit.org/lxk0301/updateTeam/master/jd_updateFactoryTuanId.json') { - return new Promise(resolve => { + return new Promise(async resolve => { $.get({url}, (err, resp, data) => { try { if (err) { @@ -1198,6 +1199,8 @@ function updateTuanIdsCDN(url = 'https://raw.fastgit.org/lxk0301/updateTeam/mast resolve(); } }) + await $.wait(3000) + resolve(); }) } function checkExchange() { diff --git a/jd_lotteryMachine.js b/jd_lotteryMachine.js index 3b15d13..3401278 100644 --- a/jd_lotteryMachine.js +++ b/jd_lotteryMachine.js @@ -29,6 +29,7 @@ async function main() { if ($.body) { eval($.body); } + $.done() } function updateShareCodes(url = 'https://raw.githubusercontent.com/yangtingxiao/QuantumultX/master/scripts/jd/jd_lotteryMachine.js') { return new Promise(resolve => { @@ -48,7 +49,7 @@ function updateShareCodes(url = 'https://raw.githubusercontent.com/yangtingxiao/ }) } function updateShareCodesCDN(url = 'https://raw.fastgit.org/yangtingxiao/QuantumultX/master/scripts/jd/jd_lotteryMachine.js') { - return new Promise(resolve => { + return new Promise(async resolve => { $.get({url}, async (err, resp, data) => { try { if (err) { @@ -63,6 +64,8 @@ function updateShareCodesCDN(url = 'https://raw.fastgit.org/yangtingxiao/Quantum resolve(); } }) + await $.wait(3000) + resolve(); }) } diff --git a/jd_small_home.js b/jd_small_home.js index 1484fb8..d310a1b 100644 --- a/jd_small_home.js +++ b/jd_small_home.js @@ -158,6 +158,7 @@ async function doChannelsListTask(taskId, taskType) { async function helpFriends() { await updateInviteCode(); if (!$.inviteCodes) await updateInviteCodeCDN(); + if (!$.inviteCodes) await updateInviteCodeCDN('https://cdn.jsdelivr.net/gh/lxk0301/updateTeam@master/jd_updateSmallHomeInviteCode.json'); for (let item of $.inviteCodes.inviteCode) { if (!item) continue await createAssistUser(item, $.createAssistUserID || "1318106976846299138"); @@ -711,7 +712,7 @@ function updateInviteCode(url = 'https://raw.githubusercontent.com/lxk0301/updat }) } function updateInviteCodeCDN(url = 'https://raw.fastgit.org/lxk0301/updateTeam/master/jd_updateSmallHomeInviteCode.json') { - return new Promise(resolve => { + return new Promise(async resolve => { $.get({url}, async (err, resp, data) => { try { if (err) { @@ -726,6 +727,8 @@ function updateInviteCodeCDN(url = 'https://raw.fastgit.org/lxk0301/updateTeam/m resolve(); } }) + await $.wait(3000) + resolve(); }) } function taskUrl(url, body = {}) { diff --git a/jd_superMarket.js b/jd_superMarket.js index d72916e..e08c747 100644 --- a/jd_superMarket.js +++ b/jd_superMarket.js @@ -316,6 +316,7 @@ async function businessCircleActivity() { console.log(`\n注:PK会在每天的七点自动随机加入lxk0301创建的队伍\n`) await updatePkActivityId(); if (!$.updatePkActivityIdRes) await updatePkActivityIdCDN(); + if (!$.updatePkActivityIdRes) await updatePkActivityIdCDN('https://cdn.jsdelivr.net/gh/lxk0301/updateTeam@master/jd_updateTeam.json'); console.log(`\nupdatePkActivityId[pkActivityId]:::${$.updatePkActivityIdRes.pkActivityId}`); console.log(`\n京东服务器返回的[pkActivityId] ${pkActivityId}`); if ($.updatePkActivityIdRes && ($.updatePkActivityIdRes.pkActivityId === pkActivityId)) { @@ -725,7 +726,7 @@ function updatePkActivityId(url = 'https://raw.githubusercontent.com/lxk0301/upd }) } function updatePkActivityIdCDN(url = 'https://raw.fastgit.org/lxk0301/updateTeam/master/jd_updateTeam.json') { - return new Promise(resolve => { + return new Promise(async resolve => { //https://cdn.jsdelivr.net/gh/lxk0301/updateTeam@master/jd_updateTeam.json //https://raw.githubusercontent.com/lxk0301/updateTeam/master/jd_updateTeam.json $.get({url}, async (err, resp, data) => { @@ -742,6 +743,8 @@ function updatePkActivityIdCDN(url = 'https://raw.fastgit.org/lxk0301/updateTeam resolve(); } }) + await $.wait(3000) + resolve(); }) } function smtgDoShopTask(taskId, itemId) { From e156c7701905bc0d97e5615caaf7fd2f95cf161b Mon Sep 17 00:00:00 2001 From: lxk0301 <778732665@qq.com> Date: Thu, 10 Dec 2020 10:49:40 +0800 Subject: [PATCH 08/10] update --- jd_pubg.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jd_pubg.js b/jd_pubg.js index 4459bd8..f24a256 100644 --- a/jd_pubg.js +++ b/jd_pubg.js @@ -208,7 +208,7 @@ function taskList(get=1) { if (safeGet(data)) { data = JSON.parse(data); let vo = data.data[0] - console.log(`您的${$.name}好友助力码为:${vo.shareId}`) + if (vo.shareId) console.log(`您的${$.name}好友助力码为:${vo.shareId}`) for (let i = 0; i< vo.venueList.length;++i){ let venue = vo.venueList[i] if(venue.venueStatus === 1) { @@ -234,7 +234,7 @@ function taskList(get=1) { } for (let i = 0; i< vo.shopList.length;++i){ let shop = vo.shopList[i] - if(shop.shopStatus === 0) { + if(shop.shopStatus === 0 || shop.shopStatus === 1) { console.log(`【关注店铺】去关注店铺 ${shop.shopName}`) await doTask(`starId=PUBG&type=shop&id=${shop.shopId}&status=1`) await $.wait(10000) From 4219444ff730e136c88e9273b034dd3a9292c601 Mon Sep 17 00:00:00 2001 From: lxk0301 <778732665@qq.com> Date: Thu, 10 Dec 2020 11:00:54 +0800 Subject: [PATCH 09/10] =?UTF-8?q?=E5=88=A0=E9=99=A4=20jd=5Flive=5Fredrain2?= =?UTF-8?q?.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jd_live_redrain2.js | 242 -------------------------------------------- 1 file changed, 242 deletions(-) delete mode 100644 jd_live_redrain2.js diff --git a/jd_live_redrain2.js b/jd_live_redrain2.js deleted file mode 100644 index a7a1262..0000000 --- a/jd_live_redrain2.js +++ /dev/null @@ -1,242 +0,0 @@ -/* -超级直播间红包雨 -每天20-23半点可领,每日上限未知 -活动时间:活动时间未知 -更新地址:https://raw.githubusercontent.com/lxk0301/jd_scripts/master/jd_live_redrain2.js -已支持IOS双京东账号, Node.js支持N个京东账号 -脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js -============Quantumultx=============== -[task_local] -#超级直播间红包雨 -30 20-23/1 * * * https://raw.githubusercontent.com/lxk0301/jd_scripts/master/jd_live_redrain2.js, tag=超级直播间红包雨, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_redPacket.png, enabled=true - -================Loon============== -[Script] -cron "30 20-23/1 * * *" script-path=https://raw.githubusercontent.com/lxk0301/jd_scripts/master/jd_live_redrain2.js, tag=超级直播间红包雨 - -===============Surge================= -超级直播间红包雨 = type=cron,cronexp="30 20-23/1 * * *",wake-system=1,timeout=20,script-path=https://raw.githubusercontent.com/lxk0301/jd_scripts/master/jd_live_redrain2.js - -============小火箭========= -超级直播间红包雨 = type=cron,script-path=https://raw.githubusercontent.com/lxk0301/jd_scripts/master/jd_live_redrain2.js, cronexpr="30 20-23/1 * * *", timeout=200, enable=true - */ -const $ = new Env('超级直播间红包雨'); - -const notify = $.isNode() ? require('./sendNotify') : ''; -//Node.js用户请在jdCookie.js处填写京东ck; -const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; -let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 -const randomCount = $.isNode() ? 20 : 5; -//IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = '', message; -if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - cookiesArr.push(jdCookieNode[item]) - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { - }; -} else { - cookiesArr.push(...[$.getdata('CookieJD'), $.getdata('CookieJD2')]); -} -const JD_API_HOST = 'https://api.m.jd.com/api'; -!(async () => { - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', {"open-url": "https://bean.m.jd.com/"}); - return; - } - await getRedRain(); - if(!$.activityId) return - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - message = ''; - await TotalBean(); - console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); - if (!$.isLogin) { - $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/`, {"open-url": "https://bean.m.jd.com/"}); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } else { - $.setdata('', `CookieJD${i ? i + 1 : ""}`);//cookie失效,故清空cookie。$.setdata('', `CookieJD${i ? i + 1 : "" }`);//cookie失效,故清空cookie。 - } - continue - } - let nowTs = new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000 - // console.log(nowTs, $.startTime, $.endTime) - if ($.startTime <= nowTs && nowTs < $.endTime) { - await receiveRedRain(); - } else { - console.log(`不在红包雨时间之内`) - message += `不在红包雨时间之内` - } - await showMsg(); - } - } -})() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - $.done(); - }) - -function showMsg() { - return new Promise(resolve => { - $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); - resolve() - }) -} - -function getRedRain() { - return new Promise(resolve => { - $.post(taskPostUrl('liveActivityV842'), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data); - let act = data.data.iconArea[0] - let url = data.data.iconArea[0].data.activityUrl - $.activityId = url.substr(url.indexOf("id=") + 3) - $.startTime = act.startTime - $.endTime = act.endTime - console.log(`下一场红包雨开始时间:${new Date(act.startTime)}`) - console.log(`下一场红包雨结束时间:${new Date(act.endTime)}`) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function receiveRedRain() { - return new Promise(resolve => { - const body = {"actId": $.activityId}; - $.get(taskUrl('noahRedRainLottery', body), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (safeGet(data)) { - data = JSON.parse(data); - if (data.subCode === '0') { - console.log(`领取成功,获得${JSON.stringify(data.lotteryResult)}`) - // message+= `领取成功,获得${JSON.stringify(data.lotteryResult)}\n` - message += `${data.lotteryResult.jPeasList[0].ext}:${(data.lotteryResult.jPeasList[0].quantity)}京豆\n` - - } else if (data.subCode === '8') { - console.log(`今日次数已满`) - message += `领取失败,今日已签到\n`; - } else { - console.log(`异常:${JSON.stringify(data)}`) - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function taskPostUrl(function_id, body = {}) { - return { - url: `https://api.m.jd.com/client.action?functionId=${function_id}`, - body: 'body=%7B%22liveId%22%3A%222944191%22%7D&client=apple&clientVersion=9.2.0&eid=eidIF3CF0112RTIyQTVGQTEtRDVCQy00Qg%3D%3D6HAJa9%2B/4Vedgo62xKQRoAb47%2Bpyu1EQs/6971aUvk0BQAsZLyQAYeid%2BPgbJ9BQoY1RFtkLCLP5OMqU&isBackground=N&joycious=193&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=53f4d9c70c1c81f1c8769d2fe2fef0190a3f60d2&osVersion=14.2&partner=TF&rfs=0000&sign=50a7412cd1a664dd2c774720919c1623&st=1607438893006&sv=122&uts=0f31TVRjBSvNs/AdsIxcW3vOKTLS9m1Bkfr/wtDAnp3AVWQdjqfHK3cMzb8cm5zGmHoA7HXEP%2BEKvfkFqnuOUa47UbSXEBYqy8Xe9uFiFqLzothzz1rNDYFYUEBZke8y0AZ/s6K2pX86xNF4VWMYj/eLiATygM4HjgJI3Iok15tt%2BsrrbWI9QIPHucqMJOGYQCG0fM0VouQZwf8dOKAxkw%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D', - headers: { - 'Host': 'api.m.jd.com', - 'content-type': 'application/x-www-form-urlencoded', - 'accept': '*/*', - 'user-agent': 'JD4iPhone/167408 (iPhone; iOS 14.2; Scale/3.00)', - 'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6', - //"Cookie": cookie, - } - } -} - -function taskUrl(function_id, body = {}) { - return { - url: `${JD_API_HOST}?functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0&_=${new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000}`, - headers: { - "Accept": "*/*", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Content-Type": "application/x-www-form-urlencoded", - "Host": "api.m.jd.com", - "Referer": "https://h5.m.jd.com/active/redrain/index.html", - "Cookie": cookie, - "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : "jdapp;iPhone;9.2.2;14.2;%E4%BA%AC%E4%B8%9C/9.2.2 CFNetwork/1206 Darwin/20.1.0") : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.2.2;14.2;%E4%BA%AC%E4%B8%9C/9.2.2 CFNetwork/1206 Darwin/20.1.0"), - } - } -} - -function TotalBean() { - return new Promise(async resolve => { - const options = { - "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, - "headers": { - "Accept": "application/json,text/plain, */*", - "Content-Type": "application/x-www-form-urlencoded", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Cookie": cookie, - "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", - "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : "jdapp;iPhone;9.2.2;14.2;%E4%BA%AC%E4%B8%9C/9.2.2 CFNetwork/1206 Darwin/20.1.0") : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.2.2;14.2;%E4%BA%AC%E4%B8%9C/9.2.2 CFNetwork/1206 Darwin/20.1.0") - } - } - $.post(options, (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 13) { - $.isLogin = false; //cookie过期 - return - } - $.nickName = data['base'].nickname; - } else { - console.log(`京东服务器返回空数据`) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; - } - } catch (e) { - console.log(e); - console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); - return false; - } -} - -// prettier-ignore -function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} From fb0dd8fda39d5dc17f5f72d342662873979eb9de Mon Sep 17 00:00:00 2001 From: lxk0301 <778732665@qq.com> Date: Thu, 10 Dec 2020 14:34:42 +0800 Subject: [PATCH 10/10] update --- jd_joy.js | 52 +++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 39 insertions(+), 13 deletions(-) diff --git a/jd_joy.js b/jd_joy.js index ec392ea..c675269 100644 --- a/jd_joy.js +++ b/jd_joy.js @@ -131,12 +131,12 @@ async function joinTwoPeopleRun() { joyRunFlag = process.env.JOY_RUN_FLAG; } if (`${joyRunFlag}` === 'true') { - console.log(`\n===========以下是双人赛跑信息========\n`) + teamLevel = $.isNode() ? (process.env.JOY_TEAM_LEVEL ? process.env.JOY_TEAM_LEVEL : teamLevel) : ($.getdata('JOY_TEAM_LEVEL') ? $.getdata('JOY_TEAM_LEVEL') : teamLevel); + console.log(`\n===========以下是${teamLevel}人赛跑信息========\n`) await getPetRace(); if ($.petRaceResult) { - teamLevel = $.isNode() ? (process.env.JOY_TEAM_LEVEL ? process.env.JOY_TEAM_LEVEL : teamLevel) : ($.getdata('JOY_TEAM_LEVEL') ? $.getdata('JOY_TEAM_LEVEL') : teamLevel); let petRaceResult = $.petRaceResult.data.petRaceResult; - let raceUsers = $.petRaceResult.data.raceUsers; + // let raceUsers = $.petRaceResult.data.raceUsers; console.log(`赛跑状态:${petRaceResult}\n`); if (petRaceResult === 'not_participate') { console.log(`暂未参赛,现在为您参加${teamLevel}人赛跑`); @@ -146,7 +146,8 @@ async function joinTwoPeopleRun() { message += `${teamLevel}人赛跑:成功参加\n`; await getPetRace(); petRaceResult = $.petRaceResult.data.petRaceResult; - raceUsers = $.petRaceResult.data.raceUsers; + await getRankList(); + // raceUsers = $.petRaceResult.data.raceUsers; // console.log(`参赛后的状态:${petRaceResult}`) console.log(`双人赛跑助力请自己手动去邀请好友,脚本不带赛跑助力功能\n`); } @@ -172,25 +173,26 @@ async function joinTwoPeopleRun() { } } if (petRaceResult === 'participate') { - if(raceUsers) { - for (let index =0; index < raceUsers.length; index++) { - if (raceUsers[index].myself) { - console.log(`您当前里程:${raceUsers[index].distance}KM\n`); - message += `您当前里程:${raceUsers[index].distance}km\n`; + await getRankList(); + if($.raceUsers && $.raceUsers.length > 0) { + for (let index = 0; index < $.raceUsers.length; index++) { + if (index === 0) { + console.log(`您当前里程:${$.raceUsers[index].distance}KM\n当前排名:第${$.raceUsers[index].rank}名\n将获得积分:${$.raceUsers[index].coin}\n`); + // message += `您当前里程:${$.raceUsers[index].distance}km\n`; } else { - console.log(`对手当前里程:${raceUsers[index].distance}KM\n`); - message += `对手当前里程:${raceUsers[index].distance}km\n`; + console.log(`对手当前里程:${$.raceUsers[index].distance}KM`); + // message += `对手当前里程:${$.raceUsers[index].distance}km\n`; } } } - console.log('今日已参赛,下面显示应援团信息\n'); + console.log('\n今日已参赛,下面显示应援团信息'); await getBackupInfo(); if ($.getBackupInfoResult.success) { const { currentNickName, totalMembers, totalDistance, backupList } = $.getBackupInfoResult.data; console.log(`${currentNickName}的应援团信息如下\n团员:${totalMembers}个\n团员助力的里程数:${totalDistance}\n`); if (backupList && backupList.length > 0) { for (let item of backupList) { - console.log(`${item.nickName}为您助力${item.distance}km\n`); + console.log(`${item.nickName}为您助力${item.distance}km`); } } else { console.log(`暂无好友为您助力赛跑,如需助力,请手动去邀请好友助力\n`); @@ -610,6 +612,30 @@ function getPetRace() { }) }) } +//查询赛跑排行榜 +function getRankList() { + return new Promise(resolve => { + const url = `${JD_API_HOST}/combat/getRankList`; + $.raceUsers = []; + $.get(taskUrl(url, `jdjoy.jd.com`, 'h5'), (err, resp, data) => { + try { + if (err) { + console.log('\n京东宠汪汪: API查询请求失败 ‼️‼️') + } else { + // console.log('查询赛跑信息API',(data)) + data = JSON.parse(data); + if (data.success) { + $.raceUsers = data.datas; + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} //参加赛跑API function runMatch(teamLevel, timeout = 5000) { if (teamLevel === 10 || teamLevel === 50) timeout = 60000;