From a6a7d98f704a6e3687923ee4e65c239808a18f9a Mon Sep 17 00:00:00 2001 From: anonymous Date: Thu, 3 Dec 2020 00:54:52 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E6=88=90=E5=A5=BD=E5=8F=8B?= =?UTF-8?q?=E5=8A=A9=E5=8A=9B=E4=B8=8E=E7=82=B9=E5=87=BB=E5=8E=82=E9=95=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jdJxStoryShareCodes.js | 30 +++++++ jd_jxstory.js | 174 ++++++++++++++++------------------------- 2 files changed, 96 insertions(+), 108 deletions(-) create mode 100644 jdJxStoryShareCodes.js diff --git a/jdJxStoryShareCodes.js b/jdJxStoryShareCodes.js new file mode 100644 index 00000000..94534295 --- /dev/null +++ b/jdJxStoryShareCodes.js @@ -0,0 +1,30 @@ +/* +京喜故事互助码 +此文件为Node.js专用。其他用户请忽略 +支持京东N个账号 + */ +//云服务器腾讯云函数等Node.js用户在此处填写京喜故事的好友码。 +// github action用户的好友互助码填写到Action->Settings->Secrets->new Secret里面(Name填写 JXSTORY_SHARECODES(此处的Name必须按此来写,不能随意更改),内容处填写互助码,填写规则如下) +// 同一个京东账号的好友互助码用@符号隔开,不同京东账号之间用&符号或者换行隔开,下面给一个示例 +// 如: 京东账号1的shareCode1@京东账号1的shareCode2&京东账号2的shareCode1@京东账号2的shareCode2 +let shareCodes = [ + '',//账号一的好友shareCode,不同好友中间用@符号隔开 + '',//账号二的好友shareCode +] +// 判断github action里面是否有京喜故事互助码 +if (process.env.JXSTORY_SHARECODES) {if (process.env.JXSTORY_SHARECODES.indexOf('&') > -1) { + console.log(`您的互助码选择的是用&隔开\n`) + shareCodes = process.env.JXSTORY_SHARECODES.split('&'); + } else if (process.env.JXSTORY_SHARECODES.indexOf('\n') > -1) { + console.log(`您的互助码选择的是用换行隔开\n`) + shareCodes = process.env.JXSTORY_SHARECODES.split('\n'); + } else { + shareCodes = process.env.JXSTORY_SHARECODES.split(); + } +} else if (process.env.JXSTORY_SHARECODES) { + console.log(`由于您secret里面未提供助力码,故此处运行将会给脚本内置的码进行助力,请知晓!`) +} +for (let i = 0; i < shareCodes.length; i++) { + const index = (i + 1 === 1) ? '' : (i + 1); + exports['shareCodes' + index] = shareCodes[i]; +} diff --git a/jd_jxstory.js b/jd_jxstory.js index 656bbbb2..a7afb5b3 100644 --- a/jd_jxstory.js +++ b/jd_jxstory.js @@ -1,6 +1,6 @@ /* 京喜故事 -活动入口 :京喜APP->首页浮动窗口去领钱 +活动入口 :京喜APP->首页浮动窗口去领钱/京喜工厂-金牌厂长 每天运行一次即可 @@ -29,9 +29,9 @@ const JD_API_HOST = 'https://m.jingxi.com'; const notify = $.isNode() ? require('./sendNotify') : ''; let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 -const randomCount = 1; +const randomCount = 3; let cookiesArr = [], cookie = '', message = ''; -const inviteCodes = ['PDPM257r_KuQhil2Y7koNw==', "gB99tYLjvPcEFloDgamoBw=="]; +const inviteCodes = ['qSDHMwUOz7onHcMyaju4KmdSXWf0dlv7LVnTt1Wzemo=']; const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; if ($.isNode()) { Object.keys(jdCookieNode).forEach((item) => { @@ -70,7 +70,7 @@ if ($.isNode()) { continue } await shareCodesFormat(); - await jdDreamFactory() + await jdJxStory() } } })() @@ -81,14 +81,19 @@ if ($.isNode()) { $.done(); }) -async function jdDreamFactory() { +async function jdJxStory() { + await userInfo() + await helpFriends() await sign() await taskList() - await userInfo() for(let i =0;i { - // const url = `/newtasksys/newtasksys_front/GetUserTaskStatusList?source=dreamfactory&bizCode=dream_factory&sceneval=2&g_login_type=1`; $.get(newtasksysUrl('GetUserTaskStatusList'), async (err, resp, data) => { try { if (err) { @@ -270,7 +274,6 @@ function finishCard(cardId) { // 升级 function upgrade() { return new Promise(async resolve => { - // const url = `/dreamfactory/friend/HireAward?zone=dream_factory&date=${new Date().Format("yyyyMMdd")}&type=0&sceneval=2&g_login_type=1` $.get(taskurl('UpgradeUserLevelDraw', `date=${new Date().Format("yyyyMMdd")}&type=0`), async (err, resp, data) => { try { if (err) { @@ -292,35 +295,10 @@ function upgrade() { }) }) } -async function helpFriends() { - for (let code of $.newShareCodes) { - if (code) { - if ($.encryptPin === code) { - console.log(`不能为自己助力,跳过`); - continue; - } - await assistFriend(code); - } - } -} -// 帮助用户 -function assistFriend(sharepin) { +// 点击 +function increase() { return new Promise(async resolve => { - // const url = `/dreamfactory/friend/AssistFriend?zone=dream_factory&sharepin=${escape(sharepin)}&sceneval=2&g_login_type=1` - const options = { - 'url': `https://m.jingxi.com/dreamfactory/friend/AssistFriend?zone=dream_factory&sharepin=${escape(sharepin)}&sceneval=2&g_login_type=1`, - 'headers': { - "Host": "wq.jd.com", - "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"), - "Accept": "*/*", - "Accept-Language": "zh,en-US;q=0.7,en;q=0.3", - "Accept-Encoding": "gzip, deflate, br", - "Connection": "keep-alive", - "Referer": "https://wqsd.jd.com/pingou/dream_factory/index.html", - "Cookie": cookie - } - } - $.get(options, (err, resp, data) => { + $.get(taskurl('IncreaseUserMoney'), async (err, resp, data) => { try { if (err) { console.log(`${JSON.stringify(err)}`) @@ -329,9 +307,50 @@ function assistFriend(sharepin) { if (safeGet(data)) { data = JSON.parse(data); if (data['ret'] === 0) { - console.log(`助力朋友:${sharepin}成功`) + console.log(`点击厂长成功,获得 ${data['data']['moneyNum']} 钞票`) + }else if(data['ret'] === 2005){ + // 点击上限 + $.click = false + }else{ + console.log(`点击厂长过快,休息25秒`) + await $.wait(25000); + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +async function helpFriends() { + for (let code of $.newShareCodes) { + if (code) { + if ($.shareId === code) { + console.log(`不能为自己助力,跳过`); + continue; + } + await assistFriend(code); + } + } +} +// 帮助用户 +function assistFriend(shareId) { + return new Promise(async resolve => { + $.get(taskurl('AssistFriend',`shareId=${escape(shareId)}`), (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['ret'] === 0) { + console.log(`助力朋友:${shareId}成功`) } else { - console.log(`助力朋友[${sharepin}]失败:${data.msg}`) + console.log(`助力朋友[${shareId}]失败:${data.msg}`) } } } @@ -347,7 +366,6 @@ function assistFriend(sharepin) { // 任务领奖 function completeTask(taskId, taskName) { return new Promise(async resolve => { - // const url = `/newtasksys/newtasksys_front/Award?source=dreamfactory&bizCode=dream_factory&taskId=${taskId}&sceneval=2&g_login_type=1`; $.get(newtasksysUrl('Award', taskId), (err, resp, data) => { try { if (err) { @@ -388,7 +406,6 @@ function completeTask(taskId, taskName) { // 完成任务 function doTask(taskId) { return new Promise(async resolve => { - // const url = `/newtasksys/newtasksys_front/DoTask?source=dreamfactory&bizCode=dream_factory&taskId=${taskId}&sceneval=2&g_login_type=1`; $.get(newtasksysUrl('DoTask', taskId), (err, resp, data) => { try { if (err) { @@ -426,8 +443,8 @@ function userInfo() { data = JSON.parse(data); if (data['ret'] === 0) { data = data['data']; - $.unActive = true;//标记是否开启了京喜活动或者选购了商品进行生产 - $.encryptPin = data.encryptPin; + $.shareId = data['shareId']; + console.log(`分享码: ${data['shareId']}`); $.currentMoneyNum = data.currentMoneyNum; } else { console.log(`异常:${JSON.stringify(data)}`) @@ -442,72 +459,13 @@ function userInfo() { }) }) } -//领取红包 -function DrawProductionStagePrize() { - return new Promise(async resolve => { - // const url = `/dreamfactory/userinfo/DrawProductionStagePrize?zone=dream_factory&sceneval=2&g_login_type=1&productionId=${$.productionId}`; - $.get(taskurl('userinfo/DrawProductionStagePrize', `productionId=${$.productionId}`), (err, resp, data) => { - try { - if (err) { - console.log(`${JSON.stringify(err)}`) - console.log(`${$.name} API请求失败,请检查网路重试`) - } else { - console.log(`领取红包功能(测试中):${data}`); - // if (safeGet(data)) { - // data = JSON.parse(data); - // if (data['ret'] === 0) { - // - // } else { - // console.log(`异常:${JSON.stringify(data)}`) - // } - // } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} - -function getFactoryIdByPin(pin) { - return new Promise((resolve, reject) => { - // const url = `/dreamfactory/userinfo/GetUserInfoByPin?zone=dream_factory&pin=${pin}&sceneval=2`; - $.get(taskurl('userinfo/GetUserInfoByPin', `pin=${pin}`), (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['ret'] === 0) { - if (data.data.factoryList) { - //做此判断,有时候返回factoryList为null - // resolve(data['data']['factoryList'][0]['factoryId']) - $.stealFactoryId = data['data']['factoryList'][0]['factoryId']; - } - } else { - console.log(`异常:${JSON.stringify(data)}`) - } - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } - }) - }) -} async function showMsg() { return new Promise(async resolve => { let ctrTemp; - if ($.isNode() && process.env.DREAMFACTORY_NOTIFY_CONTROL) { - ctrTemp = `${process.env.DREAMFACTORY_NOTIFY_CONTROL}` === 'false'; - } else if ($.getdata('jdDreamFactory')) { - ctrTemp = $.getdata('jdDreamFactory') === 'false'; + if ($.isNode() && process.env.JXSTORY_NOTIFY_CONTROL) { + ctrTemp = `${process.env.JXSTORY_NOTIFY_CONTROL}` === 'false'; + } else if ($.getdata('jdJxStory')) { + ctrTemp = $.getdata('jdJxStory') === 'false'; } else { ctrTemp = `${jdNotify}` === 'false'; } @@ -525,7 +483,7 @@ async function showMsg() { function readShareCode() { console.log(`开始`) return new Promise(async resolve => { - $.get({url: `http://api.turinglabs.net/api/v1/jd/jxfactory/read/${randomCount}/`}, (err, resp, data) => { + $.get({url: `http://api.turinglabs.net/api/v1/jd/jxstory/read/${randomCount}/`}, (err, resp, data) => { try { if (err) { console.log(`${JSON.stringify(err)}`) @@ -570,7 +528,7 @@ function requireConfig() { return new Promise(resolve => { console.log(`开始获取${$.name}配置文件\n`); //Node.js用户请在jdCookie.js处填写京东ck; - const shareCodes = $.isNode() ? require('./jdDreamFactoryShareCodes.js') : ''; + const shareCodes = $.isNode() ? require('./jdJxStoryShareCodes.js') : ''; console.log(`共${cookiesArr.length}个京东账号\n`); $.shareCodesArr = []; if ($.isNode()) { @@ -666,7 +624,7 @@ function newtasksysUrl(functionId, taskId) { 'Connection': 'keep-alive', 'User-Agent': "jdpingou;iPhone;3.15.2;13.5.1;90bab9217f465a83a99c0b554a946b0b0d5c2f7a;network/wifi;model/iPhone12,1;appBuild/100365;ADID/696F8BD2-0820-405C-AFC0-3C6D028040E5;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/1;hasOCPay/0;supportBestPay/0;session/14;pap/JA2015_311210;brand/apple;supportJDSHWK/1;", 'Accept-Language': 'zh-cn', - 'Referer': 'https://wqsd.jd.com/pingou/dream_factory/index.html', + 'Referer': 'https://st.jingxi.com/pingou/jx_factory_story/index.html', 'Accept-Encoding': 'gzip, deflate, br', } }