From 298f49779fee7feb9d102c724a98097bee9829c5 Mon Sep 17 00:00:00 2001 From: shylocks Date: Wed, 16 Dec 2020 16:29:53 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=9C=8B=E4=B8=80?= =?UTF-8?q?=E7=9C=8B=E9=A2=86=E5=A5=96body=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=95=99=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jd_watch.js | 47 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/jd_watch.js b/jd_watch.js index d0040e3a..0ff1530c 100644 --- a/jd_watch.js +++ b/jd_watch.js @@ -20,9 +20,30 @@ cron "10 9 * * *" script-path=https://raw.githubusercontent.com/lxk0301/jd_scrip */ const $ = new Env('京东看一看'); let acceptBody = [ - ] -let doBody = [ + "area=12_904_908_57903&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22240499056%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone10%2C2&eid=eidIF3CF0112RTIyQTVGQTEtRDVCQy00Qg%3D%3D6HAJa9%2B/4Vedgo62xKQRoAb47%2Bpyu1EQs/6971aUvk0BQAsZLyQAYeid%2BPgbJ9BQoY1RFtkLCLP5OMqU&isBackground=N&joycious=200&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=53f4d9c70c1c81f1c8769d2fe2fef0190a3f60d2&osVersion=14.2&partner=apple&rfs=0000&scope=01&screen=1242%2A2208&sign=cb37ff7634295c0ac13d3344ec94a996&st=1608105243070&sv=112&uts=0f31TVRjBSueCA6d1433N/VvOpFVgTQ3ayM3m/f8v%2B5SZcxHDy1W0aeMpwRE60%2B5NCC1QBAEVnTfdyUBY1v5dzjJYNmtBpfPHeEOqjU2lcvvt9i4lMwuL6cFvhiheX1QlG4SCsmZu6Zhj5aCQji0PhIRINWPoPq7tOwraAhYokfkEoI1Vcv3DgT8TKdKMtBfCtTr%2BEIaEPSfItFIJPlqXw%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D", + "area=12_904_908_57903&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239972247%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone10%2C2&eid=eidIF3CF0112RTIyQTVGQTEtRDVCQy00Qg%3D%3D6HAJa9%2B/4Vedgo62xKQRoAb47%2Bpyu1EQs/6971aUvk0BQAsZLyQAYeid%2BPgbJ9BQoY1RFtkLCLP5OMqU&isBackground=N&joycious=200&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=53f4d9c70c1c81f1c8769d2fe2fef0190a3f60d2&osVersion=14.2&partner=apple&rfs=0000&scope=01&screen=1242%2A2208&sign=56c93bfb9ff0ff270b9b110ef74ffa23&st=1608105308757&sv=100&uts=0f31TVRjBSueCA6d1433N/VvOpFVgTQ3ayM3m/f8v%2B5SZcxHDy1W0aeMpwRE60%2B5NCC1QBAEVnTfdyUBY1v5dzjJYNmtBpfPHeEOqjU2lcvvt9i4lMwuL6cFvhiheX1QlG4SCsmZu6Zhj5aCQji0PhIRINWPoPq7tOwraAhYokfkEoI1Vcv3DgT8TKdKMtBfCtTr%2BEIaEPSfItFIJPlqXw%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D", ] +let doBody = [ + "area=12_904_908_57903&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22240499056%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone10%2C2&eid=eidIF3CF0112RTIyQTVGQTEtRDVCQy00Qg%3D%3D6HAJa9%2B/4Vedgo62xKQRoAb47%2Bpyu1EQs/6971aUvk0BQAsZLyQAYeid%2BPgbJ9BQoY1RFtkLCLP5OMqU&isBackground=N&joycious=200&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=53f4d9c70c1c81f1c8769d2fe2fef0190a3f60d2&osVersion=14.2&partner=apple&rfs=0000&scope=01&screen=1242%2A2208&sign=de79fac772336c4f2452580f01c9fc51&st=1608105253494&sv=112&uts=0f31TVRjBSueCA6d1433N/VvOpFVgTQ3ayM3m/f8v%2B5SZcxHDy1W0aeMpwRE60%2B5NCC1QBAEVnTfdyUBY1v5dzjJYNmtBpfPHeEOqjU2lcvvt9i4lMwuL6cFvhiheX1QlG4SCsmZu6Zhj5aCQji0PhIRINWPoPq7tOwraAhYokfkEoI1Vcv3DgT8TKdKMtBfCtTr%2BEIaEPSfItFIJPlqXw%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D", + "area=12_904_908_57903&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239972247%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone10%2C2&eid=eidIF3CF0112RTIyQTVGQTEtRDVCQy00Qg%3D%3D6HAJa9%2B/4Vedgo62xKQRoAb47%2Bpyu1EQs/6971aUvk0BQAsZLyQAYeid%2BPgbJ9BQoY1RFtkLCLP5OMqU&isBackground=N&joycious=200&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=53f4d9c70c1c81f1c8769d2fe2fef0190a3f60d2&osVersion=14.2&partner=apple&rfs=0000&scope=01&screen=1242%2A2208&sign=98f4ebd2ff64c2b05e3323fc37131b12&st=1608105318845&sv=100&uts=0f31TVRjBSueCA6d1433N/VvOpFVgTQ3ayM3m/f8v%2B5SZcxHDy1W0aeMpwRE60%2B5NCC1QBAEVnTfdyUBY1v5dzjJYNmtBpfPHeEOqjU2lcvvt9i4lMwuL6cFvhiheX1QlG4SCsmZu6Zhj5aCQji0PhIRINWPoPq7tOwraAhYokfkEoI1Vcv3DgT8TKdKMtBfCtTr%2BEIaEPSfItFIJPlqXw%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D" +] +/* +使用 Charles 抓包,使用正则表达式:functionId=disc(AcceptTask|doTask) 过滤请求 +选中所有请求,将所有请求保存为 JSON Session File 名称为 watch.chlsj,将该文件与jd_watch.js放在相同目录中 +*/ +function preload(){ + const fs = require('fs'); + let raw = fs.readFileSync('watch.chlsj'); + let s = JSON.parse(raw); + s.map(vo=>{ + let doTask = vo.request.header.headers.filter(vo=>vo['name'] === ":path" && vo['value'].indexOf('discDoTask')>0)[0] + if(doTask){ + doBody.push(vo.request.body.text) + }else{ + acceptBody.push(vo.request.body.text) + } + }) +} const notify = $.isNode() ? require('./sendNotify') : ''; //Node.js用户请在jdCookie.js处填写京东ck; const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; @@ -81,16 +102,22 @@ const JD_API_HOST = 'https://api.m.jd.com/client.action'; async function jdHealth() { $.bean = 0 await getTaskList() + console.log(`${$.name}浏览次数:${$.task.times}/${$.task.maxTimes}`) if($.task) { - for (let i = $.task.times; i < $.task.maxTimes; ++i) { + let i = 0, j = $.task.times + while(j < $.task.maxTimes) { if (!acceptBody[i]) break - let res = await acceptTask(acceptBody[i]) + let res = await acceptTask(acceptBody[++i]) if (res['success']) { - await $.wait(12000) - await doTask(doBody[i]) + await $.wait(10000) + await doTask(doBody[i-1]) + j++ } + await $.wait(500); } - await reward() + await getTaskList() + if ($.task.times===$.task.maxTimes) + await reward() await showMsg(); } } @@ -140,9 +167,9 @@ function acceptTask(body) { if (safeGet(data)) { data = JSON.parse(data); if(data.success){ - console.log('浏览开始请求成功') + // console.log('浏览开始请求成功') }else{ - console.log(`${data.message}`) + // console.log(`${data.message}`) } } } @@ -182,7 +209,7 @@ function doTask(body) { } // 完成看 function reward() { - let body = "body=%7B%22taskId%22%3A%222%22%2C%22bizType%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone10%2C2&eid=eidIF3CF0112RTIyQTVGQTEtRDVCQy00Qg%3D%3D6HAJa9%2B/4Vedgo62xKQRoAb47%2Bpyu1EQs/6971aUvk0BQAsZLyQAYeid%2BPgbJ9BQoY1RFtkLCLP5OMqU&isBackground=N&joycious=200&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=53f4d9c70c1c81f1c8769d2fe2fef0190a3f60d2&osVersion=14.2&partner=apple&rfs=0000&scope=01&screen=1242%2A2208&sign=23e57970b79e373fd94ae8ac75ba9777&st=1607943120275&sv=112&uts=0f31TVRjBStSN/KN45aFsqdm3cWx37OzS1DDtk92Jjb1GFDLcR3WqIplv0XA1h/hn4ycbABQbxmY2Z6OJ41XlUNqODg0xhlFxdy9vzwBobHzhtVmCcORklu9W1cB6YcW0kYJNzSsy5ypxaQvGUf1oq/yMw/Hbo5lD3f4srHsrWzrsnKQ4K7HYtCFiZ5kn/AC%2B/tEmJRu9yM5j2nCMqdvmg%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D" + let body = "area=12_904_908_57903&body=%7B%22taskId%22%3A%223%22%2C%22bizType%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone10%2C2&eid=eidIF3CF0112RTIyQTVGQTEtRDVCQy00Qg%3D%3D6HAJa9%2B/4Vedgo62xKQRoAb47%2Bpyu1EQs/6971aUvk0BQAsZLyQAYeid%2BPgbJ9BQoY1RFtkLCLP5OMqU&isBackground=N&joycious=200&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=53f4d9c70c1c81f1c8769d2fe2fef0190a3f60d2&osVersion=14.2&partner=apple&rfs=0000&scope=01&screen=1242%2A2208&sign=17715aee2221001db42054582e246b12&st=1608106937687&sv=102&uts=0f31TVRjBSueCA6d1433N/VvOpFVgTQ3ayM3m/f8v%2B5SZcxHDy1W0aeMpwRE60%2B5NCC1QBAEVnTfdyUBY1v5dzjJYNmtBpfPHeEOqjU2lcvvt9i4lMwuL6cFvhiheX1QlG4SCsmZu6Zhj5aCQji0PhIRINWPoPq7tOwraAhYokfkEoI1Vcv3DgT8TKdKMtBfCtTr%2BEIaEPSfItFIJPlqXw%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D" return new Promise(resolve => { $.post(taskPostUrl("discReceiveTaskAward", body), async (err, resp, data) => { try { From 50aefde2deba3c617359ece31a5aa72de358c04d Mon Sep 17 00:00:00 2001 From: shylocks Date: Wed, 16 Dec 2020 16:34:43 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=95=99=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jd_watch.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/jd_watch.js b/jd_watch.js index 0ff1530c..47851809 100644 --- a/jd_watch.js +++ b/jd_watch.js @@ -28,8 +28,9 @@ let doBody = [ "area=12_904_908_57903&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239972247%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone10%2C2&eid=eidIF3CF0112RTIyQTVGQTEtRDVCQy00Qg%3D%3D6HAJa9%2B/4Vedgo62xKQRoAb47%2Bpyu1EQs/6971aUvk0BQAsZLyQAYeid%2BPgbJ9BQoY1RFtkLCLP5OMqU&isBackground=N&joycious=200&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=53f4d9c70c1c81f1c8769d2fe2fef0190a3f60d2&osVersion=14.2&partner=apple&rfs=0000&scope=01&screen=1242%2A2208&sign=98f4ebd2ff64c2b05e3323fc37131b12&st=1608105318845&sv=100&uts=0f31TVRjBSueCA6d1433N/VvOpFVgTQ3ayM3m/f8v%2B5SZcxHDy1W0aeMpwRE60%2B5NCC1QBAEVnTfdyUBY1v5dzjJYNmtBpfPHeEOqjU2lcvvt9i4lMwuL6cFvhiheX1QlG4SCsmZu6Zhj5aCQji0PhIRINWPoPq7tOwraAhYokfkEoI1Vcv3DgT8TKdKMtBfCtTr%2BEIaEPSfItFIJPlqXw%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D" ] /* -使用 Charles 抓包,使用正则表达式:functionId=disc(AcceptTask|doTask) 过滤请求 +使用 Charles 抓包,使用正则表达式:functionId=disc(AcceptTask|DoTask) 过滤请求 选中所有请求,将所有请求保存为 JSON Session File 名称为 watch.chlsj,将该文件与jd_watch.js放在相同目录中 +使用手机抓包,将functionId=discAcceptTask的请求填入acceptBody,将discDoTask的body填入doBody */ function preload(){ const fs = require('fs'); @@ -65,6 +66,12 @@ if ($.isNode()) { } const JD_API_HOST = 'https://api.m.jd.com/client.action'; !(async () => { + if($.isNode()){ + const stats = await util.promisify(fs.stat)('watch.json'); + if(stats.isFile()){ + preload() + } + } if (!cookiesArr[0]) { $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', {"open-url": "https://bean.m.jd.com/"}); return; From 5dd2714407f019393404085e99e8ef80fc1b82ca Mon Sep 17 00:00:00 2001 From: shylocks Date: Wed, 16 Dec 2020 16:35:40 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jd_watch.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jd_watch.js b/jd_watch.js index 47851809..4830e97b 100644 --- a/jd_watch.js +++ b/jd_watch.js @@ -67,7 +67,7 @@ if ($.isNode()) { const JD_API_HOST = 'https://api.m.jd.com/client.action'; !(async () => { if($.isNode()){ - const stats = await util.promisify(fs.stat)('watch.json'); + const stats = await util.promisify(fs.stat)('watch.chlsj'); if(stats.isFile()){ preload() } From dd6458470438982575398c3555db0de2e32c8031 Mon Sep 17 00:00:00 2001 From: shylocks Date: Wed, 16 Dec 2020 16:41:21 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jd_watch.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/jd_watch.js b/jd_watch.js index 4830e97b..fb297b18 100644 --- a/jd_watch.js +++ b/jd_watch.js @@ -67,9 +67,16 @@ if ($.isNode()) { const JD_API_HOST = 'https://api.m.jd.com/client.action'; !(async () => { if($.isNode()){ - const stats = await util.promisify(fs.stat)('watch.chlsj'); - if(stats.isFile()){ - preload() + const fs = require('fs'); + try { + if (fs.existsSync('watch.chlsj')) { + preload() + if (doBody.length < 40){ + console.log(`${$.name}Body数小于40,无法完成任务!`) + } + } + } catch(err) { + console.error(err) } } if (!cookiesArr[0]) {