feat: 完成好友助力与点击厂长

This commit is contained in:
any
2020-12-03 00:54:52 +08:00
parent 4ff55aef27
commit 4e77eeba30
2 changed files with 96 additions and 108 deletions

30
jdJxStoryShareCodes.js Normal file
View File

@@ -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];
}

View File

@@ -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<Math.trunc($.currentMoneyNum/20000);++i){
await upgrade();
}
await cardList()
$.click = true;
while($.click){
await increase()
}
}
// 签到
function sign() {
@@ -121,7 +126,6 @@ function sign() {
// 初始化任务
function taskList() {
return new Promise(async resolve => {
// 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',
}
}