diff --git a/jd_bookshop.js b/jd_bookshop.js index 5ae6b12e..859463e9 100644 --- a/jd_bookshop.js +++ b/jd_bookshop.js @@ -23,8 +23,13 @@ const notify = $.isNode() ? require('./sendNotify') : ''; const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; //Node.js用户请在jdCookie.js处填写京东ck; //IOS等用户直接用NobyDa的jd cookie -let cookiesArr = [], cookie = '', message, helpInfo; -const ACT_ID = 'dz2010100034444201', shareUuid = 'ca6559b560464939a61445afc462f3c1' +let cookiesArr = [], cookie = '', message; +const ACT_ID = 'dz2010100034444201', shareUuid = '28a699ac78d74aa3b31f7103597f8927' + +let inviteCodes = [ + '28a699ac78d74aa3b31f7103597f8927@f14ee9c92954cf79829320dd482bf49@fdf827db272543d88dbb51a505c2e869', + '28a699ac78d74aa3b31f7103597f8927@f14ee9c92954cf79829320dd482bf49@fdf827db272543d88dbb51a505c2e869' +] if ($.isNode()) { Object.keys(jdCookieNode).forEach((item) => { @@ -47,6 +52,8 @@ if ($.isNode()) { $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', {"open-url": "https://bean.m.jd.com/"}); return; } + $.shareCodesArr = [] + await requireConfig() for (let i = 0; i < cookiesArr.length; i++) { if (cookiesArr[i]) { cookie = cookiesArr[i]; @@ -66,6 +73,7 @@ if ($.isNode()) { } continue } + await shareCodesFormat() await jdBeauty() } } @@ -87,6 +95,7 @@ async function jdBeauty() { await getUserInfo() await getActContent(false, shareUuid) if ($.exit) return + await doHelpList() await getAllBook() await getMyBook() await getActContent(true) @@ -98,9 +107,18 @@ async function jdBeauty() { $.gold -= 800 } } + await helpFriends() await showMsg(); } +async function helpFriends() { + for (let code of $.newShareCodes) { + if (!code) continue + console.log(`去助力好友${code}`) + await getActContent(true, code) + } +} + // 获得IsvToken function getIsvToken() { return new Promise(resolve => { @@ -158,8 +176,14 @@ function getActCk() { console.log(`${err},${jsonParse(resp.body)['message']}`) console.log(`${$.name} API请求失败,请检查网路重试`) } else { - for (let ck of resp['headers']['set-cookie']) { - cookie = `${cookie}; ${ck.split(";")[0]};` + if($.isNode()) + for (let ck of resp['headers']['set-cookie']) { + cookie = `${cookie}; ${ck.split(";")[0]};` + } + else{ + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}; ${ck.split(";")[0]};` + } } } } catch (e) { @@ -269,6 +293,7 @@ function getActContent(info = false, shareUuid = '') { return } $.actorUuid = $.userInfo.actorUuid + if(!info) console.log(`您的好友助力码为${$.actorUuid}`) $.gold = $.userInfo.bookStore.hasStoreGold if (!info) { const tasks = data.data.settingVo @@ -301,7 +326,29 @@ function getActContent(info = false, shareUuid = '') { }) }) } +function doHelpList(taskType, value) { + let body = `activityId=${ACT_ID}&actorUuid=${$.actorUuid}&num=0&sortStatus=1` + return new Promise(resolve => { + $.post(taskPostUrl('dingzhi/taskact/common/getDayShareRecord', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${err},${jsonParse(resp.body)['message']}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + console.log(`今日助力情况${data.data.length}/10`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} // 做任务 function doTask(taskType, value) { let body = `activityId=${ACT_ID}&pin=${encodeURIComponent($.token)}&actorUuid=${$.actorUuid}&taskType=${taskType}&taskValue=${value}` @@ -577,6 +624,45 @@ function TotalBean() { }) } +//格式化助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) + $.newShareCodes = []; + if ($.shareCodesArr[$.index - 1]) { + $.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); + } else { + console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) + const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1); + $.newShareCodes = inviteCodes[tempIndex].split('@'); + } + const readShareCodeRes = null //await readShareCode(); + if (readShareCodeRes && readShareCodeRes.code === 200) { + $.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]; + } + console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) + resolve(); + }) +} +function requireConfig() { + return new Promise(resolve => { + console.log(`开始获取${$.name}配置文件\n`); + //Node.js用户请在jdCookie.js处填写京东ck; + const shareCodes = [] + console.log(`共${cookiesArr.length}个京东账号\n`); + $.shareCodesArr = []; + if ($.isNode()) { + Object.keys(shareCodes).forEach((item) => { + if (shareCodes[item]) { + $.shareCodesArr.push(shareCodes[item]) + } + }) + } + console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}助力码\n`); + resolve() + }) +} + function safeGet(data) { try { if (typeof JSON.parse(data) == "object") {