更新于 08-17 12:04

This commit is contained in:
root
2021-08-17 12:04:49 -04:00
parent 1906f6b483
commit e51c557879
19 changed files with 3363 additions and 3603 deletions

View File

@@ -183,5 +183,8 @@
#大乐透
15 6 * * * node /scripts/jd_DrawEntrance.js >> /scripts/logs/jd_DrawEntrance.log 2>&1
0 8,12 * * * node /scripts/jd_crowdfunding_wish.js >> /scripts/logs/jd_crowdfunding_wish.log 2>&1
8 8 * * * node /scripts/jd_shop_sign.js >> /scripts/logs/jd_shop_sign.log 2>&1
##############可选脚本##############

539
jd_5g.js
View File

@@ -2,75 +2,69 @@
京东手机狂欢城活动
活动时间: 2021-8-9至2021-8-28
活动入口:暂无 [活动地址](https://carnivalcity.m.jd.com)
往期奖励:
a、第1名可获得实物手机一部
b、 每日第2-10000名可获得50个京豆
c、 每日第10001-30000名可获得20个京豆
脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js
===================quantumultx================
[task_local]
#京东手机狂欢城
0 0-18/6 * * * jd_5g.js, tag=京东手机狂欢城, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true
0 0-18/6 * * * jd_carnivalcity.js, tag=京东手机狂欢城, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true
=====================Loon================
[Script]
cron "0 0-18/6 * * *" script-path=jd_5g.js, tag=京东手机狂欢城
cron "0 0-18/6 * * *" script-path=jd_carnivalcity.js, tag=京东手机狂欢城
====================Surge================
京东手机狂欢城 = type=cron,cronexp=0 0-18/6 * * *,wake-system=1,timeout=3600,script-path=gua_carnivalcity.js
京东手机狂欢城 = type=cron,cronexp=0 0-18/6 * * *,wake-system=1,timeout=3600,script-path=jd_carnivalcity.js
============小火箭=========
5G狂欢城 = type=cron,script-path=jd_5g.js, cronexpr="0 0,6,12,18 * * *", timeout=3600, enable=true
5G狂欢城 = type=cron,script-path=jd_carnivalcity.js, cronexpr="0 0,6,12,18 * * *", timeout=3600, enable=true
*/
const jd_heplers = require("./utils/JDHelpers.js");
const jd_helpers = require("./utils/JDHelpers.js");
const jd_env = require("./utils/JDEnv.js");
const $ = jd_env.env("京东手机狂欢城");
const notify = $.isNode() ? require("./sendNotify") : "";
//Node.js用户请在jdCookie.js处填写京东ck;
const jdCookieNode = $.isNode() ? require("./jdCookie.js") : "";
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
//IOS等用户直接用NobyDa的jd cookie
let cookiesArr = [],
cookie = "",
message = "",
allMessage = "";
let cookiesArr = [], cookie = '', message = '', allMessage = '';
if ($.isNode()) {
Object.keys(jdCookieNode).forEach((item) => {
cookiesArr.push(jdCookieNode[item]);
});
if (process.env.JD_DEBUG && process.env.JD_DEBUG === "false") console.log = () => {};
if (JSON.stringify(process.env).indexOf("GITHUB") > -1) process.exit(0);
cookiesArr.push(jdCookieNode[item])
})
if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {};
if (JSON.stringify(process.env).indexOf('GITHUB') > -1) process.exit(0)
} else {
cookiesArr = [$.getdata("CookieJD"), $.getdata("CookieJD2"), ...jd_heplers.jsonParse($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item);
cookiesArr = [$.getdata("CookieJD"), $.getdata("CookieJD2"), ...jd_helpers.jsonParse($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item);
}
let inviteCodes = [];
$.shareCodesArr = [];
const JD_API_HOST = "https://api.m.jd.com/api";
const activeEndTime = "2021/08/28 00:00:00+08:00"; //活动结束时间
const JD_API_HOST = 'https://api.m.jd.com/api';
const activeEndTime = '2021/08/28 00:00:00+08:00';//活动结束时间
let nowTime = new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000;
!(async () => {
if (!cookiesArr[0]) {
$.msg($.name, "【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取", "https://bean.m.jd.com/bean/signIndex.action", { "open-url": "https://bean.m.jd.com/bean/signIndex.action" });
$.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"});
return;
}
$.temp = [];
if (nowTime > new Date(activeEndTime).getTime()) {
//活动结束后弹窗提醒
$.msg($.name, "活动已结束", `该活动累计获得京豆:${$.jingBeanNum}\n请删除此脚本\n咱江湖再见`);
if ($.isNode()) await notify.sendNotify($.name + "活动已结束", `请删除此脚本\n咱江湖再见`);
return;
$.msg($.name, '活动已结束', `该活动累计获得京豆:${$.jingBeanNum}\n请删除此脚本\n咱江湖再见`);
if ($.isNode()) await notify.sendNotify($.name + '活动已结束', `请删除此脚本\n咱江湖再见`);
return
}
await requireConfig();
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]);
$.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1])
$.index = i + 1;
$.isLogin = true;
$.nickName = "";
$.nickName = '';
$.jingBeanNum = 0;//累计获得京豆
$.integralCount = 0;//累计获得积分
$.integer = 0;//当天获得积分
@@ -78,9 +72,9 @@ let nowTime = new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000
$.num = 0;//当天排名
$.beans = 0;//本次运行获得京豆数量
$.blockAccount = false;//黑号
message = "";
message = '';
console.log(`\n开始【京东账号${$.index}${$.nickName || $.UserName}\n`);
getUA();
getUA()
await shareCodesFormat();
await JD818();
}
@@ -89,8 +83,8 @@ let nowTime = new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000
if (cookiesArr[i]) {
cookie = cookiesArr[i];
$.canHelp = true;//能否助力
$.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]);
if (cookiesArr && cookiesArr.length >= 1 && $.canHelp) {
$.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1])
if ((cookiesArr && cookiesArr.length >= 1) && $.canHelp) {
console.log(`\n先自己账号内部相互邀请助力\n`);
for (let item of $.temp) {
console.log(`\n${$.UserName} 去参助力 ${item}`);
@@ -103,34 +97,33 @@ let nowTime = new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000
}
}
if ($.canHelp) {
console.log(`\n\n如果有剩余助力机会,则给作者以及随机码助力`);
console.log(`\n\n如果有剩余助力机会,则给作者以及随机码助力`)
await doHelp();
}
}
}
// console.log(JSON.stringify($.temp))
if (allMessage) {
//NODE端,默认每月一日运行进行推送通知一次
if ($.isNode()) {
await notify.sendNotify($.name, allMessage, { url: JD_API_HOST });
$.msg($.name, "", allMessage);
await notify.sendNotify($.name, allMessage, { url: "https://carnivalcity.m.jd.com" });
$.msg($.name, '', allMessage);
}
}
})()
.catch((e) => {
$.log("", `${$.name}, 失败! 原因: ${e}!`, "");
$.log('', `${$.name}, 失败! 原因: ${e}!`, '')
})
.finally(() => {
$.done();
});
})
async function JD818() {
try {
await indexInfo();//获取任务
await supportList();//助力情况
await getHelp();//获取邀请码
if ($.blockAccount) return;
await indexInfo(true); //获取任务
if ($.blockAccount) return
// await indexInfo(true);//获取任务
await doHotProducttask();//做热销产品任务
await doBrandTask();//做品牌手机任务
await doBrowseshopTask();//逛好货街,做任务
@@ -140,109 +133,109 @@ async function JD818() {
await getListIntegral();
await getListJbean();
await check();//查询抽奖记录(未兑换的,发送提醒通知);
await showMsg();
await showMsg()
} catch (e) {
$.logErr(e);
$.logErr(e)
}
}
async function doHotProducttask() {
$.hotProductList = $.hotProductList.filter((v) => !!v && v["status"] === "1");
if ($.hotProductList && $.hotProductList.length) console.log(`开始 【浏览热销手机产品】任务,需等待6秒`);
$.hotProductList = $.hotProductList.filter(v => !!v && v['status'] === "1");
if ($.hotProductList && $.hotProductList.length) console.log(`开始 【浏览热销手机产品】任务,需等待6秒`)
for (let item of $.hotProductList) {
await doBrowse(item["id"], "", "hot", "browse", "browseHotSku");
await doBrowse(item['id'], "", "hot", "browse", "browseHotSku");
await $.wait(1000 * 6);
if ($.browseId) {
await getBrowsePrize($.browseId);
await getBrowsePrize($.browseId)
}
}
}
//做任务 API
function doBrowse(id = "", brandId = "", taskMark = "hot", type = "browse", logMark = "browseHotSku") {
$.browseId = "";
return new Promise((resolve) => {
const body = { brandId: `${brandId}`, id: `${id}`, taskMark: `${taskMark}`, type: `${type}`, logMark: `${logMark}` };
const options = taskPostUrl("/khc/task/doBrowse", body);
$.browseId = ''
return new Promise(resolve => {
const body = {"brandId":`${brandId}`,"id":`${id}`,"taskMark":`${taskMark}`,"type":`${type}`,"logMark":`${logMark}`};
const options = taskPostUrl('/khc/task/doBrowse', body)
$.post(options, (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} API请求失败请检查网路重试`);
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
console.log(`doBrowse 做${taskMark}任务:${data}`);
data = JSON.parse(data);
if (data && data["code"] === 200) {
$.browseId = data["data"]["browseId"] || "";
if (data && data['code'] === 200) {
$.browseId = data['data']['browseId'] || "";
} else {
console.log(`doBrowse异常`);
}
}
} catch (e) {
$.logErr(e, resp);
$.logErr(e, resp)
} finally {
resolve();
}
});
});
})
})
}
//领取奖励
function getBrowsePrize(browseId, brandId = "") {
return new Promise((resolve) => {
const body = { browseId: browseId, brandId: `${brandId}` };
const options = taskPostUrl("/khc/task/getBrowsePrize", body);
function getBrowsePrize(browseId, brandId = '') {
return new Promise(resolve => {
const body = {"browseId":browseId, "brandId":`${brandId}`};
const options = taskPostUrl('/khc/task/getBrowsePrize', body)
$.post(options, (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} API请求失败请检查网路重试`);
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
console.log(`getBrowsePrize 领取奖励 结果:${data}`);
data = JSON.parse(data);
if (data && data["code"] === 200) {
if (data["data"]["jingBean"]) $.beans += data["data"]["jingBean"];
if (data && data['code'] === 200) {
if (data['data']['jingBean']) $.beans += data['data']['jingBean'];
}
}
} catch (e) {
$.logErr(e, resp);
$.logErr(e, resp)
} finally {
resolve(data);
}
});
});
})
})
}
// 关注
function followShop(browseId, brandId = "") {
return new Promise((resolve) => {
const body = { id: `${browseId}`, brandId: `${brandId}` };
const options = taskPostUrl("/khc/task/followShop", body);
function followShop(browseId, brandId = '') {
return new Promise(resolve => {
const body = {"id":`${browseId}`, "brandId":`${brandId}`};
const options = taskPostUrl('/khc/task/followShop', body)
$.post(options, (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} API请求失败请检查网路重试`);
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
console.log(`followShop 领取奖励 结果:${data}`);
data = JSON.parse(data);
if (data && data["code"] === 200) {
if (data["data"]["jingBean"]) $.beans += data["data"]["jingBean"];
if (data && data['code'] === 200) {
if (data['data']['jingBean']) $.beans += data['data']['jingBean'];
}
}
} catch (e) {
$.logErr(e, resp);
$.logErr(e, resp)
} finally {
resolve(data);
}
});
});
})
})
}
async function doBrandTask() {
for (let brand of $.brandList) {
await brandTaskInfo(brand["brandId"]);
await brandTaskInfo(brand['brandId']);
}
}
function brandTaskInfo(brandId) {
const body = { brandId: `${brandId}` };
const options = taskPostUrl("/khc/index/brandTaskInfo", body);
const body = {"brandId":`${brandId}`};
const options = taskPostUrl('/khc/index/brandTaskInfo', body)
$.skuTask = [];
$.shopTask = [];
$.meetingTask = [];
@@ -251,62 +244,62 @@ function brandTaskInfo(brandId) {
$.post(options, async (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} API请求失败请检查网路重试`);
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
data = $.toObj(data);
if (data.code === 200) {
let brandId = data["data"]["brandId"];
$.skuTask = data["data"]["skuTask"] || [];
$.shopTask = data["data"]["shopTask"] || [];
$.meetingTask = data["data"]["meetingTask"] || [];
$.questionTask = data["data"]["questionTask"] || [];
let flag = true;
for (let sku of $.shopTask.filter((vo) => !!vo && vo["status"] !== "4")) {
if (flag) console.log(`\n开始做 品牌手机 【${data["data"]["brandName"]}】 任务`);
if (flag) flag = false;
console.log(`开始浏览 1-F 关注 任务 ${sku["name"]}`);
if (sku["status"] == 3) {
await followShop(sku["id"], brandId);
} else if (sku["status"] == 8) {
await doBrowse(sku["id"], brandId, "brand", "follow", "browseShop");
let brandId = data['data']['brandId'];
$.skuTask = data['data']['skuTask'] || [];
$.shopTask = data['data']['shopTask'] || [];
$.meetingTask = data['data']['meetingTask'] || [];
$.questionTask = data['data']['questionTask'] || [];
let flag = true
for (let sku of $.shopTask.filter(vo => !!vo && vo['status'] !== '4')){
if(flag) console.log(`\n开始做 品牌手机 【${data['data']['brandName']}】 任务`)
if(flag) flag = false
console.log(`开始浏览 1-F 关注 任务 ${sku['name']}`);
if(sku['status'] == 3){
await followShop(sku['id'], brandId);
}else if(sku['status'] == 8){
await doBrowse(sku['id'], brandId, "brand", "follow", "browseShop");
await $.wait(1000 * 6);
if ($.browseId) await getBrowsePrize($.browseId, brandId);
}else{
console.log(`未知任务状态 ${sku["status"]}`);
console.log(`未知任务状态 ${sku['status']}`)
}
}
flag = true;
for (let sku of $.skuTask.filter((vo) => !!vo && vo["status"] !== "4")) {
if (flag) console.log(`\n开始做 品牌手机 【${data["data"]["brandName"]}】 任务`);
if (flag) flag = false;
console.log(`开始浏览 2-F 单品区 任务 ${sku["name"]}`);
await doBrowse(sku["id"], brandId, "brand", "presell", "browseSku");
flag = true
for (let sku of $.skuTask.filter(vo => !!vo && vo['status'] !== '4')){
if(flag) console.log(`\n开始做 品牌手机 【${data['data']['brandName']}】 任务`)
if(flag) flag = false
console.log(`开始浏览 2-F 单品区 任务 ${sku['name']}`);
await doBrowse(sku['id'], brandId, "brand", "presell", "browseSku");
await $.wait(1000 * 6);
if ($.browseId) await getBrowsePrize($.browseId, brandId);
}
flag = true;
for (let sku of $.meetingTask.filter((vo) => !!vo && vo["status"] !== "4")) {
if (flag) console.log(`\n开始做 品牌手机 【${data["data"]["brandName"]}】 任务`);
if (flag) flag = false;
console.log(`开始浏览 3-F 综合区 任务 ${sku["name"]}需等待10秒`);
await doBrowse(sku["id"], brandId, "brand", "meeting", "browseVenue");
flag = true
for (let sku of $.meetingTask.filter(vo => !!vo && vo['status'] !== '4')){
if(flag) console.log(`\n开始做 品牌手机 【${data['data']['brandName']}】 任务`)
if(flag) flag = false
console.log(`开始浏览 3-F 综合区 任务 ${sku['name']}需等待10秒`);
await doBrowse(sku['id'], brandId, "brand", "meeting", "browseVenue");
await $.wait(10500);
if ($.browseId) await getBrowsePrize($.browseId, brandId);
}
flag = true;
if ($.questionTask.hasOwnProperty("id") && $.questionTask["result"] === "0") {
if (flag) console.log(`\n开始做 品牌手机 【${data["data"]["brandName"]}】 任务`);
if (flag) flag = false;
console.log(`开始做答题任务 ${$.questionTask["question"]}`);
flag = true
if ($.questionTask.hasOwnProperty('id') && $.questionTask['result'] === '0') {
if(flag) console.log(`\n开始做 品牌手机 【${data['data']['brandName']}】 任务`)
if(flag) flag = false
console.log(`开始做答题任务 ${$.questionTask['question']}`);
let result = 0;
for (let i = 0; i < $.questionTask["answers"].length; i++) {
if ($.questionTask["answers"][i]["right"]) {
for (let i = 0; i < $.questionTask['answers'].length; i ++) {
if ($.questionTask['answers'][i]['right']) {
result = i + 1;//正确答案
}
}
if (result !== 0) {
await doQuestion(brandId, $.questionTask["id"], result);
await doQuestion(brandId, $.questionTask['id'], result);
}
}
} else {
@@ -318,47 +311,47 @@ function brandTaskInfo(brandId) {
} finally {
resolve(data);
}
});
})
});
}
function doQuestion(brandId, questionId, result) {
return new Promise((resolve) => {
const body = { brandId: `${brandId}`, questionId: `${questionId}`, result: result };
const options = taskPostUrl("/khc/task/doQuestion", body);
return new Promise(resolve => {
const body = {"brandId":`${brandId}`,"questionId":`${questionId}`,"result":result};
const options = taskPostUrl('/khc/task/doQuestion', body)
$.post(options, (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} API请求失败请检查网路重试`);
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
console.log(`doQuestion 领取答题任务奖励 结果:${data}`);
data = JSON.parse(data);
if (data && data["code"] === 200) {
if (data["data"]["jingBean"]) $.beans += data["data"]["jingBean"];
if (data && data['code'] === 200) {
if (data['data']['jingBean']) $.beans += data['data']['jingBean'];
}
}
} catch (e) {
$.logErr(e, resp);
$.logErr(e, resp)
} finally {
resolve(data);
}
});
});
})
})
}
//逛好货街,做任务
async function doBrowseshopTask() {
$.browseshopList = $.browseshopList.filter((v) => !!v && v["status"] === "6");
if ($.browseshopList && $.browseshopList.length) console.log(`\n开始 【逛好货街做任务】需等待10秒`);
$.browseshopList = $.browseshopList.filter(v => !!v && v['status'] === "6");
if ($.browseshopList && $.browseshopList.length) console.log(`\n开始 【逛好货街做任务】需等待10秒`)
for (let shop of $.browseshopList) {
await doBrowse(shop["id"], "", "browseShop", "browse", "browseShop");
await doBrowse(shop['id'], "", "browseShop", "browse", "browseShop");
await $.wait(10000);
if ($.browseId) {
await getBrowsePrize($.browseId);
await getBrowsePrize($.browseId)
}
}
}
function indexInfo(flag = false) {
const options = taskPostUrl(`/khc/index/indexInfo`, {});
const options = taskPostUrl(`/khc/index/indexInfo`, {})
$.hotProductList = [];
$.brandList = [];
$.browseshopList = [];
@@ -366,16 +359,16 @@ function indexInfo(flag = false) {
$.post(options, async (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} API请求失败请检查网路重试`);
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
data = $.toObj(data);
if (data.code === 200) {
$.hotProductList = data["data"]["hotProductList"];
$.brandList = data["data"]["brandList"];
$.browseshopList = data["data"]["browseshopList"];
$.hotProductList = data['data']['hotProductList'];
$.brandList = data['data']['brandList'];
$.browseshopList = data['data']['browseshopList'];
} else {
console.log(`异常:${JSON.stringify(data)}`);
console.log(`异常:${JSON.stringify(data)}`)
}
}
} catch (e) {
@@ -383,23 +376,23 @@ function indexInfo(flag = false) {
} finally {
resolve();
}
});
})
});
}
//获取助力信息
function supportList() {
const options = taskPostUrl("/khc/index/supportList", {});
const options = taskPostUrl('/khc/index/supportList', {})
return new Promise( (resolve) => {
$.post(options, async (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} API请求失败请检查网路重试`);
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
data = JSON.parse(data);
if (data.code === 200) {
console.log(`助力情况:${data["data"]["supportedNums"]}/${data["data"]["supportNeedNums"]}`);
message += `邀请好友助力:${data["data"]["supportedNums"]}/${data["data"]["supportNeedNums"]}\n`;
console.log(`助力情况:${data['data']['supportedNums']}/${data['data']['supportNeedNums']}`);
message += `邀请好友助力:${data['data']['supportedNums']}/${data['data']['supportNeedNums']}\n`
}
}
} catch (e) {
@@ -407,30 +400,30 @@ function supportList() {
} finally {
resolve();
}
});
})
});
}
//积分抽奖
function lottery() {
const options = taskPostUrl("/khc/record/lottery", {});
const options = taskPostUrl('/khc/record/lottery', {})
return new Promise( (resolve) => {
$.post(options, async (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} API请求失败请检查网路重试`);
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
data = JSON.parse(data);
if (data.code === 200) {
if (data.data.prizeId !== 8) {
//已中奖
const url = "https://carnivalcity.m.jd.com/#/integralDetail";
const url = 'https://carnivalcity.m.jd.com/#/integralDetail';
console.log(`积分抽奖获得:${data.data.prizeName}`);
message += `积分抽奖获得:${data.data.prizeName}\n`;
$.msg($.name, "", `京东账号 ${$.index} ${$.nickName || $.UserName}\n积分抽奖获得:${data.data.prizeName}\n兑换地址:${url}`, { "open-url": url });
$.msg($.name, '', `京东账号 ${$.index} ${$.nickName || $.UserName}\n积分抽奖获得:${data.data.prizeName}\n兑换地址:${url}`, { 'open-url': url });
if ($.isNode()) await notify.sendNotify($.name, `京东账号 ${$.index} ${$.nickName || $.UserName}\n积分抽奖获得:${data.data.prizeName}\n兑换地址:${url}`);
} else {
console.log(`积分抽奖结果:${data["data"]["prizeName"]}}`);
console.log(`积分抽奖结果:${data['data']['prizeName']}}`);
}
}
}
@@ -439,31 +432,31 @@ function lottery() {
} finally {
resolve();
}
});
})
});
}
//查询抽奖记录(未兑换的)
function check() {
const options = taskPostUrl("/khc/record/convertRecord", { pageNum: 1 });
const options = taskPostUrl('/khc/record/convertRecord', { pageNum: 1 })
return new Promise( (resolve) => {
$.post(options, async (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} API请求失败请检查网路重试`);
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
data = JSON.parse(data);
let str = "";
let str = '';
if (data.code === 200) {
for (let obj of data.data) {
if (obj.hasOwnProperty("fillStatus") && obj.fillStatus !== true) {
if (obj.hasOwnProperty('fillStatus') && obj.fillStatus !== true) {
str += JSON.stringify(obj);
}
}
}
if (str.length > 0) {
const url = "https://api.m.jd.com/api/#/integralDetail";
$.msg($.name, "", `京东账号 ${$.index} ${$.nickName || $.UserName}\n积分抽奖获得:${str}\n兑换地址:${url}`, { "open-url": url });
const url = 'https://carnivalcity.m.jd.com/#/integralDetail';
$.msg($.name, '', `京东账号 ${$.index} ${$.nickName || $.UserName}\n积分抽奖获得:${str}\n兑换地址:${url}`, { 'open-url': url });
if ($.isNode()) await notify.sendNotify($.name, `京东账号 ${$.index} ${$.nickName || $.UserName}\n积分抽奖获得:${str}\n兑换地址:${url}`);
}
}
@@ -472,77 +465,77 @@ function check() {
} finally {
resolve();
}
});
})
});
}
function myRank() {
return new Promise((resolve) => {
return new Promise(resolve => {
const options = taskPostUrl("/khc/rank/myPastRanks", {});
$.post(options, async (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} API请求失败请检查网路重试`);
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
data = JSON.parse(data);
if (data.code === 200) {
if (data.data && data.data.length) {
for (let i = 0; i < data.data.length; i++) {
$.date = data.data[i]["date"];
if (data.data[i].status === "1") {
console.log(`开始领取往期奖励【${data.data[i]["prizeName"]}`);
$.date = data.data[i]['date'];
if (data.data[i].status === '1') {
console.log(`开始领取往期奖励【${data.data[i]['prizeName']}`)
let res = await saveJbean($.date);
// console.log('领奖结果', res)
if (res && res.code === 200) {
$.beans += Number(res.data);
console.log(`${data.data[i]["date"]}日 【${res.data}】京豆奖励领取成功`);
console.log(`${data.data[i]['date']}日 【${res.data}】京豆奖励领取成功`)
} else {
console.log(`往期奖励领取失败:${JSON.stringify(res)}`);
}
await $.wait(500);
} else if (data.data[i].status === "3") {
console.log(`${data.data[i]["date"]}日 【${data.data[i]["prizeName"]}】往期京豆奖励已领取~`);
} else if (data.data[i].status === '3') {
console.log(`${data.data[i]['date']}日 【${data.data[i]['prizeName']}】往期京豆奖励已领取~`)
} else {
console.log(`${data.data[i]["date"]}日 【${data.data[i]["status"]}】往期京豆奖励今日争取进入前30000名哦~`);
console.log(`${data.data[i]['date']}日 【${data.data[i]['status']}】往期京豆奖励今日争取进入前30000名哦~`)
}
}
}
}
}
} catch (e) {
$.logErr(e, resp);
$.logErr(e, resp)
} finally {
resolve(data);
}
});
});
})
})
}
//领取往期奖励API
function saveJbean(date) {
return new Promise((resolve) => {
const body = "date=" + date;
const options = taskPostUrl("/khc/rank/getRankJingBean", body);
return new Promise(resolve => {
const body = {"date":`${date}`};
const options = taskPostUrl('/khc/rank/getRankJingBean', body)
$.post(options, (err, resp, data) => {
try {
// console.log('领取京豆结果', data);
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} API请求失败请检查网路重试`);
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
data = JSON.parse(data);
}
} catch (e) {
$.logErr(e, resp);
$.logErr(e, resp)
} finally {
resolve(data);
}
});
});
})
})
}
async function doHelp() {
console.log(`\n开始助力好友`);
for (let i in $.newShareCodes) {
let item = $.newShareCodes[i];
let item = $.newShareCodes[i]
if (!item) continue;
const helpRes = await toHelp(item.trim());
if (helpRes.data.status === 5) {
@@ -550,45 +543,45 @@ async function doHelp() {
break;
}else if (helpRes.data.status === 4){
console.log(`该助力码[${item}]已达上限`);
$.newShareCodes[i] = "";
$.newShareCodes[i] = ''
}
}
}
//助力API
function toHelp(code = "ca5cb827-4f0d-4133-85cc-9059ef8588e0") {
return new Promise((resolve) => {
const body = { shareId: `${code}` };
const options = taskPostUrl("/khc/task/doSupport", body);
function toHelp(code = "576faa38-201c-4fc3-aef8-913d4994c32b") {
return new Promise(resolve => {
const body = {"shareId":`${code}`};
const options = taskPostUrl('/khc/task/doSupport', body)
$.post(options, (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} API请求失败请检查网路重试`);
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
console.log(`助力结果:${data}`);
data = JSON.parse(data);
if (data && data["code"] === 200) {
if (data["data"]["status"] === 6) console.log(`助力成功\n`);
if (data["data"]["jdNums"]) $.beans += data["data"]["jdNums"];
if (data && data['code'] === 200) {
if (data['data']['status'] === 6) console.log(`助力成功\n`)
if (data['data']['jdNums']) $.beans += data['data']['jdNums'];
}
}
} catch (e) {
$.logErr(e, resp);
$.logErr(e, resp)
} finally {
resolve(data);
}
});
});
})
})
}
//获取邀请码API
function getHelp() {
return new Promise((resolve) => {
return new Promise(resolve => {
const options = taskPostUrl("/khc/task/getSupport", {});
$.post(options, async (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} API请求失败请检查网路重试`);
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
data = JSON.parse(data);
if (data.code === 200) {
@@ -597,29 +590,29 @@ function getHelp() {
$.temp.push(data.data.shareId);
} else {
console.log(`获取邀请码失败:${JSON.stringify(data)}`);
if (data.code === 1002) $.blockAccount = true;
if (data.code === 1002 || data.code === 1001) $.blockAccount = true;
}
}
} catch (e) {
$.logErr(e, resp);
$.logErr(e, resp)
} finally {
resolve(data);
}
});
});
})
})
}
//获取当前活动总京豆数量
function getListJbean() {
return new Promise((resolve) => {
return new Promise(resolve => {
const body = {
pageNum: ``,
};
pageNum: ``
}
const options = taskPostUrl("/khc/record/jingBeanRecord", body);
$.post(options, async (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} API请求失败请检查网路重试`);
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
data = JSON.parse(data);
if (data.code === 200) {
@@ -630,25 +623,25 @@ function getListJbean() {
}
}
} catch (e) {
$.logErr(e, resp);
$.logErr(e, resp)
} finally {
resolve(data);
}
});
});
})
})
}
//查询累计获得积分
function getListIntegral() {
return new Promise((resolve) => {
return new Promise(resolve => {
const body = {
pageNum: ``,
};
pageNum: ``
}
const options = taskPostUrl("/khc/record/integralRecord", body);
$.post(options, async (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} API请求失败请检查网路重试`);
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
data = JSON.parse(data);
if (data.code === 200) {
@@ -664,23 +657,23 @@ function getListIntegral() {
}
}
} catch (e) {
$.logErr(e, resp);
$.logErr(e, resp)
} finally {
resolve(data);
}
});
});
})
})
}
//查询今日累计积分与排名
function getListRank() {
return new Promise((resolve) => {
return new Promise(resolve => {
const options = taskPostUrl("/khc/rank/dayRank", {});
$.post(options, async (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`);
console.log(`${$.name} API请求失败请检查网路重试`);
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
data = JSON.parse(data);
if (data.code === 200) {
@@ -697,71 +690,109 @@ function getListRank() {
}
}
} catch (e) {
$.logErr(e, resp);
$.logErr(e, resp)
} finally {
resolve(data);
}
});
});
})
})
}
function updateShareCodesCDN(url = 'https://cdn.jsdelivr.net/gh/smiek2221/updateTeam@master/shareCodes/jd_cityShareCodes.json') {
return new Promise(resolve => {
$.get({url , headers:{"User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1")}, timeout: 200000}, async (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
$.updatePkActivityIdRes = JSON.parse(data);
}
} catch (e) {
$.logErr(e, resp)
} finally {
resolve();
}
})
})
}
//格式化助力码
function shareCodesFormat() {
return new Promise(async (resolve) => {
return new Promise(async resolve => {
// console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`)
$.newShareCodes = [];
if ($.shareCodesArr[$.index - 1]) {
$.newShareCodes = $.shareCodesArr[$.index - 1].split("@");
$.newShareCodes = $.shareCodesArr[$.index - 1].split('@');
} else {
// console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`)
const tempIndex = $.index > inviteCodes.length ? inviteCodes.length - 1 : $.index - 1;
$.newShareCodes = (inviteCodes[tempIndex] && inviteCodes[tempIndex].split("@")) || [];
const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1);
$.newShareCodes = inviteCodes[tempIndex] && inviteCodes[tempIndex].split('@') || [];
if ($.updatePkActivityIdRes && $.updatePkActivityIdRes.length) $.newShareCodes = [...$.updatePkActivityIdRes, ...$.newShareCodes];
}
// console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`)
resolve();
});
})
}
function requireConfig() {
return new Promise(resolve => {
console.log(`开始获取${$.name}配置文件\n`);
let shareCodes = [];
if ($.isNode()) {
if (process.env.JD818_SHARECODES) {
if (process.env.JD818_SHARECODES.indexOf('\n') > -1) {
shareCodes = process.env.JD818_SHARECODES.split('\n');
} else {
shareCodes = process.env.JD818_SHARECODES.split('&');
}
}
}
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 taskPostUrl(a,t = {}) {
const body = $.toStr({ ...t, apiMapping: `${a}` });
const body = $.toStr({...t,"apiMapping":`${a}`})
return {
url: `${JD_API_HOST}`,
body: `appid=guardian-starjd&functionId=carnivalcity_jd_prod&body=${body}&t=${Date.now()}&loginType=2`,
headers: {
Accept: "application/json, text/plain, */*",
"Accept": "application/json, text/plain, */*",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-cn",
Connection: "keep-alive",
"Connection": "keep-alive",
"Content-Type": "application/x-www-form-urlencoded",
Origin: "https://carnivalcity.m.jd.com",
Referer: "https://carnivalcity.m.jd.com/",
Cookie: cookie,
"Origin": "https://carnivalcity.m.jd.com",
"Referer": "https://carnivalcity.m.jd.com/",
"Cookie": cookie,
"User-Agent": $.UA,
},
};
}
}
}
async function showMsg() {
if ($.beans) {
allMessage += `京东账号${$.index} ${$.nickName || $.UserName}\n本次运行获得:${
$.beans
}京豆\n${message}活动地址https://carnivalcity.m.jd.com/#/home?shareId=ddd345fb-57bb-4ece-968b-7bf4c92be7cc&t=${Date.now()}${$.index !== cookiesArr.length ? "\n\n" : ""}`;
allMessage += `京东账号${$.index} ${$.nickName || $.UserName}\n本次运行获得:${$.beans}京豆\n${message}活动地址https://carnivalcity.m.jd.com${$.index !== cookiesArr.length ? '\n\n' : ''}`
}
$.msg($.name, `京东账号${$.index} ${$.nickName || $.UserName}`, `${message}具体详情点击弹窗跳转后即可查看`, {
"open-url": "https://carnivalcity.m.jd.com/#/home?shareId=ddd345fb-57bb-4ece-968b-7bf4c92be7cc&t=" + Date.now(),
});
$.msg($.name, `京东账号${$.index} ${$.nickName || $.UserName}`, `${message}具体详情点击弹窗跳转后即可查看`, {"open-url": "https://carnivalcity.m.jd.com"});
}
function getUA(){
$.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(
40
)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`;
$.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`
}
function randomString(e) {
e = e || 32;
let t = "abcdef0123456789",
a = t.length,
n = "";
for (i = 0; i < e; i++) n += t.charAt(Math.floor(Math.random() * a));
return n;
let t = "abcdef0123456789", a = t.length, n = "";
for (i = 0; i < e; i++)
n += t.charAt(Math.floor(Math.random() * a));
return n
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

106
jd_cash_exchange.js Executable file
View File

@@ -0,0 +1,106 @@
/*
签到领现金兑换
需要填写exchangeAccounts参数兑换多少取决于app内显示默认为所有账号兑换10红包部分账号会出现参数错误的提示。指定账号+金额应这样填写 export exchangeAccounts="pt_pin1@2&pt_pin2@10"
0 0 * * * jd_cash_exchange.js
*/
const jd_helpers = require("./utils/JDHelpers.js");
const jd_env = require("./utils/JDEnv.js");
const $ = jd_env.env("签到领现金兑换");
const ua = `jdltapp;iPhone;3.1.0;${Math.ceil(Math.random() * 4 + 10)}.${Math.ceil(Math.random() * 4)};${randomString(40)}`;
let cookiesArr = [];
var exchangeAccounts = process.env.exchangeAccounts ?? "";
let amount = 10;
!(async () => {
if (exchangeAccounts) {
v = exchangeAccounts.split("&");
exchangeAccounts = {};
for (var i of v) {
j = i.split("@");
exchangeAccounts[j[0]] = j[1] ? +j[1] : 10;
}
}
await requireConfig();
for (let i = 0; i < cookiesArr.length; i++) {
if (cookiesArr[i]) {
cookie = cookiesArr[i];
pt_pin = cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1];
amount = 0;
if (exchangeAccounts) {
amount = exchangeAccounts[pt_pin];
if (!amount) continue;
}
exchange(cookie, amount, pt_pin);
}
}
await $.wait(3000);
})();
function exchange(cookie, amount, pt_pin) {
body = "";
if (amount == 2) {
body = `adid=41CBA646-6EA3-4E79-8623-680F74A5FD7D&body={"type":"2","amount":"200"}&build=167724&client=apple&clientVersion=10.0.6&d_brand=apple&d_model=iPhone10,4&eid=eidI56d7812024s3J0UGWUp+RVK4+9/EY14sMidFB85YSXDSHPI9r07frvvGbXtVFQYuMENUoWFIARXaAYlZNGDyc8dfGQqd42Fer11K0PRjAQjbTBp5&isBackground=N&joycious=79&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=96ca9290eae9f41770e2c16fd4d07c67eb06b445&osVersion=14.4.2&partner=apple&rfs=0000&scope=10&screen=750*1334&sign=1be417384d1ffccde3dbf6a207277706&st=1625756188161&sv=111&uemps=0-0&uts=0f31TVRjBSsqndu4/jgUPz6uymy50MQJCNy5Ou1kywjunNJYhK2mQzTDwvkNHz8d6J9JA+AN8f7dHT8E/pp+/K+s+/hw3ktfXf7rIWQ3qVqjrVZ8RJpuJJq5WCCsy0wGM2uum+4ppHaNVwnSBrL/ZniFeKJAAxcyCaBFHBfNkP1t3YA8CtB8pQTjm5pvQ/eWyy8qqiBgfB+iPthLx1deRA==&uuid=hjudwgohxzVu96krv/T6Hg==`;
} else {
amount = 10;
body = `adid=A23D8ECF-B992-477E-BA88-A5E7680DD8F6&body={"type":"2","amount":"1000"}&build=167638&client=apple&clientVersion=9.5.0&eid=eidI5E4E0119RTBCMkMxNEMtNjgxQi00NQ==20v8iy1ivQ9DClEjHXmgvcd5v2MhcsarbJkOkdI5EZKIlK2CiFmfRE6MG017DU87QAHcuwoYwkjGXGws&isBackground=N&joycious=61&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=3245ad3d16ab2153c69f9ca91cd2e931b06a3bb8&osVersion=13.6.1&rfs=0000&scope=11&screen=1242*2208&sign=427a28328d1650d4c553c1cfdf25744c&st=1618885128891&sv=100&uemps=0-0&uts=0f31TVRjBSsqndu4/jgUPz6uymy50MQJ/+MrMjk4y13kWuMN4VaxQad1iD1QgEcDK/YYLWTuOPAd1akjd5yd8GStO+tvG+FdogNDbDiKjvQgXieBZsBtY63e8GaM2SFD74E/SCZQOKBCgUHo9/gWatL87O9NO0DFzwx44pkT4mA7/S1gDn01AyEbB70wvtsnPtixLxroKuYYDIBNepnJLQ==&uuid=hjudwgohxzVu96krv/T6Hg==`;
}
$.post(
{
url: "https://api.m.jd.com/client.action?functionId=cash_getRedPacket",
headers: {
Cookie: cookie,
Accept: "*/*",
Connection: "keep-alive",
"Accept-Encoding": "gzip, deflate, br",
"User-Agent": ua,
"Accept-Language": "zh-Hans-CN;q=1",
Host: "api.m.jd.com",
"Content-Type": "application/x-www-form-urlencoded",
},
body: body,
},
(err, resp, data) => {
try {
data = JSON.parse(data);
if (data.data) {
if (data.data.bizMsg.indexOf("success") != -1) {
data.data.bizMsg = `成功兑换${amount}元红包`;
notify.sendNotify(`签到领现金账号 ${decodeURIComponent(pt_pin)}`, data.data.bizMsg);
}
}
if (data.errorMessage) {
console.log(data.errorMessage);
}
} catch (e) {
$.logErr("Error: ", e, resp);
}
}
);
}
function requireConfig() {
return new Promise((resolve) => {
notify = $.isNode() ? require("./sendNotify") : "";
const jdCookieNode = $.isNode() ? require("./jdCookie.js") : "";
if ($.isNode()) {
Object.keys(jdCookieNode).forEach((item) => {
if (jdCookieNode[item]) {
cookiesArr.push(jdCookieNode[item]);
}
});
if (process.env.JD_DEBUG && process.env.JD_DEBUG === "false") console.log = () => {};
} else {
cookiesArr = [$.getdata("CookieJD"), $.getdata("CookieJD2"), ...jd_helpers.jsonParse($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item);
}
console.log(`${cookiesArr.length}个京东账号\n`);
resolve();
});
}
function randomString(e) {
e = e || 32;
let t = "abcdefhijkmnprstwxyz2345678",
a = t.length,
n = "";
for (i = 0; i < e; i++) n += t.charAt(Math.floor(Math.random() * a));
return n;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

322
jd_crowdfunding_wish.js Executable file
View File

@@ -0,0 +1,322 @@
/*
cron "0 8,12 * * *" jd_crowdfunding_wish.js
*/
const jd_helpers = require("./utils/JDHelpers.js");
const jd_env = require("./utils/JDEnv.js");
const $ = jd_env.env("京东众筹许愿池");
const notify = $.isNode() ? require("./sendNotify") : "";
const jdCookieNode = $.isNode() ? require("./jdCookie.js") : "";
let timestamp = Date.now();
let cookiesArr = [],
cookie = "",
message;
a = "";
let allMessage = "";
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 = [$.getdata("CookieJD"), $.getdata("CookieJD2"), ...jd_helpers.jsonParse($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item);
}
const JD_API_HOST = "https://api.m.jd.com/client.action";
!(async () => {
if (!cookiesArr[0]) {
$.msg(
$.name,
"【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取",
"https://bean.m.jd.com/",
{
"open-url": "https://bean.m.jd.com/",
}
);
return;
}
for (let i = 0; i < cookiesArr.length; i++) {
if (cookiesArr[i]) {
cookie = cookiesArr[i];
ck2 = cookiesArr[Math.round(Math.random() * 5)];
$.UserName = decodeURIComponent(
cookie.match(/pt_pin=([^; ]+)(?=;?)/) &&
cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]
);
$.index = i + 1;
message = "";
console.log(`\n******开始【京东账号${$.index}${$.UserName}*********\n`);
await task();
}
}
if ($.isNode() && allMessage && !process.env.CROWDFUNDING_WISH_NOTIFY_CONTROL) {
await notify.sendNotify(`${$.name}`, `${allMessage}`);
}
})()
.catch((e) => {
$.log("", `${$.name}, 失败! 原因: ${e}!`, "");
})
.finally(() => {
$.done();
});
function showMsg() {
return new Promise((resolve) => {
$.log($.name, "", `京东账号${$.index}${$.nickName}\n${message}`);
resolve();
});
}
function task() {
return new Promise(async (resolve) => {
let options = {
url: `https://api.m.jd.com/client.action`,
body: `functionId=healthyDay_getHomeData&body={"appId":"1E1NXxq0","taskToken":"","channelId":1}&client=wh5&clientVersion=1.0.0`,
headers: {
Origin: "https://h5.jd.com",
Host: "api.m.jd.com",
"User-Agent":
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 UBrowser/5.6.12150.8 Safari/537.36",
Cookie: cookie,
},
};
$.post(options, async (err, resp, data) => {
try {
data = JSON.parse(data);
if (data.data.bizMsg == "success") {
$.log(`===============存货金币===============`);
$.log(`${data.data.result.userInfo.userScore}`);
userScore = data.data.result.userInfo.userScore;
$.log(`===============抽奖需要===============`);
$.log(`${data.data.result.userInfo.scorePerLottery}`);
scorePerLottery = data.data.result.userInfo.scorePerLottery;
tasklist = data.data.result.taskVos;
$.log(`===============去做任务===============`);
$.log(`===============浏览并关注众筹频道===============`);
tk = tasklist[0].shoppingActivityVos[0].taskToken;
taskId = tasklist[0].taskId;
await dotask(tk, taskId, 0);
await dotask(tk, taskId, 1);
await dotask(tk, taskId, 0);
$.log(`===============浏览众筹频道===============`);
tk = tasklist[1].shoppingActivityVos[0].taskToken;
taskId = tasklist[1].taskId;
await dotask(tk, taskId, 0);
await dotask(tk, taskId, 1);
await $.wait(15000);
await dotask(tk, taskId, 0);
$.log(`===============每浏览商品10s可获得200金币===============`);
tk = tasklist[2].productInfoVos[0].taskToken;
taskId = tasklist[2].taskId;
item = tasklist[2].productInfoVos[0].itemId;
await dotask(tk, taskId, 0, item);
await dotask(tk, taskId, 1, item);
await $.wait(11000);
await dotask(tk, taskId, 0, item);
tk = tasklist[2].productInfoVos[1].taskToken;
taskId = tasklist[2].taskId;
item = tasklist[2].productInfoVos[1].itemId;
await dotask(tk, taskId, 0, item);
await dotask(tk, taskId, 1, item);
await $.wait(11000);
await dotask(tk, taskId, 0, item);
tk = tasklist[2].productInfoVos[2].taskToken;
taskId = tasklist[2].taskId;
item = tasklist[2].productInfoVos[2].itemId;
await dotask(tk, taskId, 0, item);
await dotask(tk, taskId, 1, item);
await $.wait(11000);
await dotask(tk, taskId, 0, item);
tk = tasklist[2].productInfoVos[3].taskToken;
item = tasklist[2].productInfoVos[3].itemId;
taskId = tasklist[2].taskId;
await dotask(tk, taskId, 0, item);
await dotask(tk, taskId, 1, item);
await $.wait(11000);
await dotask(tk, taskId, 0, item);
tk = tasklist[2].productInfoVos[4].taskToken;
item = tasklist[2].productInfoVos[4].itemId;
taskId = tasklist[2].taskId;
await dotask(tk, taskId, 0, item);
await dotask(tk, taskId, 1, item);
await $.wait(11000);
await dotask(tk, taskId, 0, item);
$.log(`===============邀请一个好友助力可获得300金币===============`);
tk = tasklist[3].assistTaskDetailVo.taskToken;
taskId = tasklist[3].taskId;
yqm = tasklist[3].assistTaskDetailVo.itemId;
$.log(`邀请码${yqm}\n正在取随机CK互相助力3次`);
for (let i = 0; i < 3; i++) {
await help(tk, taskId, 0, yqm);
await help(tk, taskId, 1, yqm);
await help(tk, taskId, 0, yqm);
}
$.log(`===============关注店铺可获得200金币===============`);
tk = tasklist[4].followShopVo[0].taskToken;
item = tasklist[4].followShopVo[0].itemId;
taskId = tasklist[4].taskId;
await dotask(tk, taskId, 0, item);
await dotask(tk, taskId, 1, item);
await dotask(tk, taskId, 0, item);
tk = tasklist[4].followShopVo[1].taskToken;
item = tasklist[4].followShopVo[1].itemId;
taskId = tasklist[4].taskId;
await dotask(tk, taskId, 0, item);
await dotask(tk, taskId, 1, item);
await dotask(tk, taskId, 0, item);
tk = tasklist[4].followShopVo[2].taskToken;
item = tasklist[4].followShopVo[2].itemId;
taskId = tasklist[4].taskId;
await dotask(tk, taskId, 0, item);
await dotask(tk, taskId, 1, item);
await dotask(tk, taskId, 0, item);
$.log(`===============连续签到===============`);
tk = tasklist[5].simpleRecordInfoVo.taskToken;
item = tasklist[5].simpleRecordInfoVo.itemId;
taskId = tasklist[5].taskId;
await dotask(tk, taskId, 0, item);
await dotask(tk, taskId, 1, item);
await dotask(tk, taskId, 0, item);
await getLottery();
cj = $.userScore / 500;
cj = parseInt(cj);
if (cj > 0) {
for (let i = 0; i < cj; i++) {
await getLottery();
}
}
} else if (data.data.bizMsg !== "success") {
console.log(data.msg);
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}
function help(taskToken, taskId, actionType, itemId) {
return new Promise(async (resolve) => {
let options = {
url: `https://api.m.jd.com/client.action`,
body: `functionId=harmony_collectScore&body={"appId":"1E1NXxq0","taskToken":"${taskToken}","taskId":${taskId},"itemId":"${itemId}","actionType":${actionType}}&client=wh5&clientVersion=1.0.0`,
headers: {
Origin: "https://h5.jd.com",
Host: "api.m.jd.com",
"User-Agent":
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 UBrowser/5.6.12150.8 Safari/537.36",
Cookie: ck2,
},
};
$.post(options, async (err, resp, data) => {
try {
data = JSON.parse(data);
const bizMsg = data?.data?.bizMsg;
if (bizMsg == "success") {
$.log(`===============任务完成===============`);
console.log(bizMsg);
$.log(`获得${data.data.result.userScore}`);
} else if (bizMsg !== "success") {
console.log(bizMsg);
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}
function dotask(taskToken, taskId, actionType, itemId) {
return new Promise(async (resolve) => {
let options = {
url: `https://api.m.jd.com/client.action`,
body: `functionId=harmony_collectScore&body={"appId":"1E1NXxq0","taskToken":"${taskToken}","taskId":${taskId},"itemId":"${itemId}","actionType":${actionType}}&client=wh5&clientVersion=1.0.0`,
headers: {
Origin: "https://h5.jd.com",
Host: "api.m.jd.com",
"User-Agent":
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 UBrowser/5.6.12150.8 Safari/537.36",
Cookie: cookie,
},
};
$.post(options, async (err, resp, data) => {
try {
data = JSON.parse(data);
if (data.data.bizMsg == "success") {
$.log(`===============任务完成===============`);
console.log(data.data.bizMsg);
$.log(`获得${data.data.result.userScore}`);
} else if (data.data.bizMsg !== "success") {
console.log(data.data.bizMsg);
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}
function getLottery() {
return new Promise(async (resolve) => {
let options = {
url: `https://api.m.jd.com/client.action`,
body: `functionId=interact_template_getLotteryResult&body={"appId":"1E1NXxq0"}&client=wh5&clientVersion=1.0.0`,
headers: {
Origin: "https://h5.jd.com",
Host: "api.m.jd.com",
"User-Agent":
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 UBrowser/5.6.12150.8 Safari/537.36",
Cookie: cookie,
},
};
$.post(options, async (err, resp, data) => {
try {
data = JSON.parse(data);
if (data.data.bizMsg == "success") {
$.userScore = data.data.result.userScore;
$.bizMsg = data.data.bizMsg;
$.log(`===============开始抽奖===============`);
if (data.data.result.userAwardsCacheDto.jBeanAwardVo) {
$.log(data.data.result.userAwardsCacheDto.jBeanAwardVo.prizeName);
allMessage += `京东账号${$.index}-${
$.nickName || $.UserName
}\n抽奖京豆: ${
data.data.result.userAwardsCacheDto.jBeanAwardVo.quantity
}${$.index !== cookiesArr.length ? "\n\n" : "\n\n"}`;
} else $.log(`啥都没抽到`);
} else if (data.data.bizMsg !== "success") {
console.log(data.data.bizMsg);
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

339
jd_shop_sign.js Executable file
View File

@@ -0,0 +1,339 @@
/*
店铺签到各类店铺签到有新的店铺直接添加token即可
*/
const jd_helpers = require('./utils/JDHelpers.js');
const jd_env = require('./utils/JDEnv.js');
const $ = jd_env.env('店铺签到');
const notify = $.isNode() ? require('./sendNotify') : '';
//Node.js用户请在jdCookie.js处填写京东ck;
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
//IOS等用户直接用NobyDa的jd cookie
let cookiesArr = [],
cookie = '',
message;
const JD_API_HOST = 'https://api.m.jd.com/api?appid=interCenter_shopSign';
let activityId = '';
let vender = '';
let num = 0;
let shopname = '';
const token = [
'020E4A5B75AE493CDF3020628CA72FDE', // 3天10豆5天20豆7天35豆
'ACD7EB42FB65AF1A447AEB329235DE04', // 每日3豆15天100豆
'5BB2C6C6332AD842011240152F7550EB', // 每日6豆7天100豆
'6C6B2702DDAAEDEBE5E68E41B6264CF6', // 每日5豆7天200积分
'CDC56C42F64CA34677E5894F28AF4871', // 每日100分1天200分、2豆2天1000分、25-3券
'2075567CC6ED0F30EAFFCF901F6C486D', // 每日2豆10天100豆
'CAF5BA5BF6B8317E282FCBF9F5C00B0E', // 每日2豆5天10豆10天20豆15天25豆
'A133DE5D8D1A5A612F49CBE1D9BCE7AA', // 每日2豆20天5元e卡
'E9E4861F0B12E5E483C949C818E3EAB8', // 每日1豆10天20豆20天50豆
'83E9B38C310EB5D26657977EF8FECA0F', // 7天20积分15天30豆
'7DE1E4B12326576BF7C5D347CC909451', // 每日10豆7天100豆
'513B43DB672C8C7B0D975DB75328A131', // 每日5豆26天88豆
'9BABD41E5674FD5791963D5366BEC634', // 每日1豆5天10豆21天100豆;
'EFFD0BF4069A8B6882A55FB07ACDA60F', // 10天30豆20天60豆30天100豆;
];
//IOS等用户直接用NobyDa的jd cookie
if ($.isNode()) {
Object.keys(jdCookieNode).forEach((item) => {
cookiesArr.push(jdCookieNode[item]);
});
if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {};
} else {
let cookiesData = $.getdata('CookiesJD') || '[]';
cookiesData = jd_helpers.jsonParse(cookiesData);
cookiesArr = cookiesData.map((item) => item.cookie);
cookiesArr.reverse();
cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]);
cookiesArr.reverse();
cookiesArr = cookiesArr.filter((item) => item !== '' && item !== null && item !== undefined);
}
!(async () => {
if (!cookiesArr[0]) {
$.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { 'open-url': 'https://bean.m.jd.com/bean/signIndex.action' });
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/bean/signIndex.action`, {
'open-url': 'https://bean.m.jd.com/bean/signIndex.action',
});
if ($.isNode()) {
await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`);
}
continue;
}
await dpqd();
if (i < 1) {
await showMsg();
}
}
}
})()
.catch((e) => {
$.log('', `${$.name}, 失败! 原因: ${e}!`, '');
})
.finally(() => {
$.done();
});
//开始店铺签到
async function dpqd() {
for (var j = 0; j < token.length; j++) {
num = j + 1;
if (token[j] == '') {
continue;
}
await getvenderId(token[j]);
if (vender == '') {
continue;
}
await getvenderName(vender);
await getActivityInfo(token[j], vender);
await signCollectGift(token[j], vender, activityId);
await taskUrl(token[j], vender);
}
}
//获取店铺ID
function getvenderId(token) {
return new Promise((resolve) => {
const options = {
url: `https://api.m.jd.com/api?appid=interCenter_shopSign&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_getActivityInfo&body={%22token%22:%22${token}%22,%22venderId%22:%22%22}&jsonp=jsonp1000`,
headers: {
accept: '*/*',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
cookie: cookie,
referer: 'https://h5.m.jd.com/',
'User-Agent': `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`,
},
};
$.get(options, (err, resp, data) => {
try {
if (err) {
console.log(`\n${$.name}: API查询请求失败 ‼️‼️`);
$.logErr(err);
} else {
//console.log(data)
data = JSON.parse(/{(.*)}/g.exec(data)[0]);
if (data.code == 402) {
vender = '';
console.log(`` + num + `个店铺签到活动已失效`);
message += `` + num + `个店铺签到活动已失效\n`;
} else {
vender = data.data.venderId;
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
});
});
}
//获取店铺名称
function getvenderName(venderId) {
return new Promise((resolve) => {
const options = {
url: `https://wq.jd.com/mshop/QueryShopMemberInfoJson?venderId=${venderId}`,
headers: {
accept: '*/*',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
cookie: cookie,
'User-Agent': `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`,
},
};
$.get(options, (err, resp, data) => {
try {
if (err) {
console.log(`\n${$.name}: API查询请求失败 ‼️‼️`);
$.logErr(err);
} else {
//console.log(data)
data = JSON.parse(data);
shopName = data.shopName;
console.log(`` + shopName + ``);
message += `` + shopName + ``;
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
});
});
}
//获取店铺活动信息
function getActivityInfo(token, venderId) {
return new Promise((resolve) => {
const options = {
url: `${JD_API_HOST}&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_getActivityInfo&body={%22token%22:%22${token}%22,%22venderId%22:${venderId}}&jsonp=jsonp1005`,
headers: {
accept: 'accept',
'accept-encoding': 'gzip, deflate',
'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
cookie: cookie,
referer: `https://h5.m.jd.com/babelDiy/Zeus/2PAAf74aG3D61qvfKUM5dxUssJQ9/index.html?token=${token}&sceneval=2&jxsid=16178634353215523301&cu=true&utm_source=kong&utm_medium=jingfen&utm_campaign=t_2009753434_&utm_term=fa3f8f38c56f44e2b4bfc2f37bce9713`,
'User-Agent': `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`,
},
};
$.get(options, (err, resp, data) => {
try {
if (err) {
// console.log(data)
console.log(`\n${$.name}: API查询请求失败 ‼️‼️`);
$.logErr(err);
} else {
//console.log(data)
data = JSON.parse(/{(.*)}/g.exec(data)[0]);
activityId = data.data.id;
//console.log(data)
let mes = '';
for (let i = 0; i < data.data.continuePrizeRuleList.length; i++) {
const level = data.data.continuePrizeRuleList[i].level;
const discount = data.data.continuePrizeRuleList[i].prizeList[0].discount;
mes += '签到' + level + '天,获得' + discount + '豆';
}
//console.log(message+mes+'\n')
//message += mes+'\n'
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
});
});
}
//店铺签到
function signCollectGift(token, venderId, activitytemp) {
return new Promise((resolve) => {
const options = {
url: `${JD_API_HOST}&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_signCollectGift&body={%22token%22:%22${token}%22,%22venderId%22:688200,%22activityId%22:${activitytemp},%22type%22:56,%22actionType%22:7}&jsonp=jsonp1004`,
headers: {
accept: 'accept',
'accept-encoding': 'gzip, deflate',
'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
cookie: cookie,
referer: `https://h5.m.jd.com/babelDiy/Zeus/2PAAf74aG3D61qvfKUM5dxUssJQ9/index.html?token=${token}&sceneval=2&jxsid=16178634353215523301&cu=true&utm_source=kong&utm_medium=jingfen&utm_campaign=t_2009753434_&utm_term=fa3f8f38c56f44e2b4bfc2f37bce9713`,
'User-Agent': `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`,
},
};
$.get(options, (err, resp, data) => {
try {
if (err) {
console.log(`\n${$.name}: API查询请求失败 ‼️‼️`);
$.logErr(err);
} else {
//console.log(data)
data = JSON.parse(/{(.*)}/g.exec(data)[0]);
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
});
});
}
//店铺获取签到信息
function taskUrl(token, venderId) {
return new Promise((resolve) => {
const options = {
url: `${JD_API_HOST}&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_getSignRecord&body={%22token%22:%22${token}%22,%22venderId%22:${venderId},%22activityId%22:${activityId},%22type%22:56}&jsonp=jsonp1006`,
headers: {
accept: 'application/json',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9',
cookie: cookie,
referer: `https://h5.m.jd.com/`,
'user-agent': `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40`,
},
};
$.get(options, (err, resp, data) => {
try {
if (err) {
console.log(`\n${$.name}: API查询请求失败 ‼️‼️`);
$.logErr(err);
} else {
//console.log(data)
data = JSON.parse(/{(.*)}/g.exec(data)[0]);
console.log(`已签到:` + data.data.days + ``);
message += `已签到:` + data.data.days + `\n`;
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
});
});
}
async function showMsg() {
if ($.isNode() && !process.env.SHOP_SIGN_NOTIFY_CONTROL) {
$.msg($.name, '', `【京东账号${$.index}${$.nickName}\n${message}`);
await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `【京东账号${$.index}${$.nickName}\n${message}`);
}
}
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': `jdapp;android;9.3.5;10;3353234393134326-3673735303632613;network/wifi;model/MI 8;addressid/138719729;aid/3524914bc77506b1;oaid/274aeb3d01b03a22;osVer/29;appBuild/86390;psn/Mp0dlaZf4czQtfPNMEfpcYU9S/f2Vv4y|2255;psq/1;adk/;ads/;pap/JA2015_311210|9.3.5|ANDROID 10;osv/10;pv/2039.1;jdv/0|androidapp|t_335139774|appshare|QQfriends|1611211482018|1611211495;ref/com.jingdong.app.mall.home.JDHomeFragment;partner/jingdong;apprpd/Home_Main;eufv/1;jdSupportDarkMode/0;Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36`,
},
};
$.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'] && data['base'].nickname) || $.UserName;
} else {
console.log(`京东服务器返回空数据`);
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
});
}

File diff suppressed because one or more lines are too long