更新于 07-15 21:05

This commit is contained in:
root
2021-07-15 21:05:21 -04:00
parent 1000f51adb
commit 926ce43891

View File

@ -1,5 +1,5 @@
/* /*
东东超市兑换奖品 脚本地址:https://gitee.com/lxk0301/jd_scripts/raw/master/jd_blueCoin.js 东东超市兑换奖品 脚本地址jd_blueCoin.js
感谢@yangtingxiao提供PR 感谢@yangtingxiao提供PR
更新时间2021-6-7 更新时间2021-6-7
活动入口京东APP我的-更多工具-东东超市 活动入口京东APP我的-更多工具-东东超市
@ -8,24 +8,24 @@
============QuantumultX============== ============QuantumultX==============
[task_local] [task_local]
#东东超市兑换奖品 #东东超市兑换奖品
0 0 0 * * * https://gitee.com/lxk0301/jd_scripts/raw/master/jd_blueCoin.js, tag=东东超市兑换奖品, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jxc.png, enabled=true 0 0 0 * * * jd_blueCoin.js, tag=东东超市兑换奖品, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jxc.png, enabled=true
====================Loon================= ====================Loon=================
[Script] [Script]
cron "0 0 0 * * *" script-path=https://gitee.com/lxk0301/jd_scripts/raw/master/jd_blueCoin.js,tag=东东超市兑换奖品 cron "0 0 0 * * *" script-path=jd_blueCoin.js,tag=东东超市兑换奖品
===================Surge================== ===================Surge==================
东东超市兑换奖品 = type=cron,cronexp="0 0 0 * * *",wake-system=1,timeout=3600,script-path=https://gitee.com/lxk0301/jd_scripts/raw/master/jd_blueCoin.js 东东超市兑换奖品 = type=cron,cronexp="0 0 0 * * *",wake-system=1,timeout=3600,script-path=jd_blueCoin.js
============小火箭========= ============小火箭=========
东东超市兑换奖品 = type=cron,script-path=https://gitee.com/lxk0301/jd_scripts/raw/master/jd_blueCoin.js, cronexpr="0 0 0 * * *", timeout=3600, enable=true 东东超市兑换奖品 = type=cron,script-path=jd_blueCoin.js, cronexpr="0 0 0 * * *", timeout=3600, enable=true
*/ */
const $ = new Env('东东超市兑换奖品'); const $ = new Env('东东超市兑换奖品');
const notify = $.isNode() ? require('./sendNotify') : ''; const notify = $.isNode() ? require('./sendNotify') : '';
let allMessage = ''; let allMessage = '';
//Node.js用户请在jdCookie.js处填写京东ck; //Node.js用户请在jdCookie.js处填写京东ck;
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
let coinToBeans = $.getdata('coinToBeans') || 0; //兑换多少数量的京豆20或者10000表示不兑换默认不兑换京豆如需兑换把0改成20或者1000或者'商品名称'(商品名称放到单引号内)即可 let coinToBeans = $.getdata('coinToBeans') || 20; //兑换多少数量的京豆20或者10000表示不兑换默认不兑换京豆如需兑换把0改成20或者1000或者'商品名称'(商品名称放到单引号内)即可
let jdNotify = false;//是否开启静默运行默认false关闭(即:奖品兑换成功后会发出通知提示) let jdNotify = false;//是否开启静默运行默认false关闭(即:奖品兑换成功后会发出通知提示)
//IOS等用户直接用NobyDa的jd cookie //IOS等用户直接用NobyDa的jd cookie
let cookiesArr = [], cookie = ''; let cookiesArr = [], cookie = '';
@ -39,12 +39,26 @@ if ($.isNode()) {
} }
const JD_API_HOST = `https://api.m.jd.com/api?appid=jdsupermarket`; const JD_API_HOST = `https://api.m.jd.com/api?appid=jdsupermarket`;
Date.prototype.Format = function (fmt) { //author: meizz
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
!(async () => { !(async () => {
if (!cookiesArr[0]) { 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; return;
} }
for (let i =0; i < cookiesArr.length; i++) { for (let i = 0; i < cookiesArr.length; i++) {
cookie = cookiesArr[i]; cookie = cookiesArr[i];
if (cookie) { if (cookie) {
$.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1])
@ -60,7 +74,7 @@ const JD_API_HOST = `https://api.m.jd.com/api?appid=jdsupermarket`;
//console.log($.coincount); //console.log($.coincount);
$.isLogin = true; $.isLogin = true;
$.nickName = ''; $.nickName = '';
// await TotalBean(); await TotalBean();
console.log(`\n****开始【京东账号${$.index}${$.nickName || $.UserName}****\n`); console.log(`\n****开始【京东账号${$.index}${$.nickName || $.UserName}****\n`);
// console.log(`目前暂无兑换酒类的奖品功能,即使输入酒类名称,脚本也会提示下架\n`) // console.log(`目前暂无兑换酒类的奖品功能,即使输入酒类名称,脚本也会提示下架\n`)
if (!$.isLogin) { if (!$.isLogin) {
@ -96,7 +110,15 @@ const JD_API_HOST = `https://api.m.jd.com/api?appid=jdsupermarket`;
})() })()
.catch((e) => $.logErr(e)) .catch((e) => $.logErr(e))
.finally(() => $.done()) .finally(() => $.done())
async function PrizeIndex() { async function PrizeIndex() {
let timel = new Date().Format("ss")
let timea = 58;
if(timel < 58) {
let timec = (timea - timel) * 1000;
console.log(`等待时间 ${timec / 1000}`);
await sleep(timec)
}
await smtg_queryPrize(); await smtg_queryPrize();
// await smtg_materialPrizeIndex();//兑换酒类奖品此兑换API与之前的兑换京豆类的不一致故目前无法进行 // await smtg_materialPrizeIndex();//兑换酒类奖品此兑换API与之前的兑换京豆类的不一致故目前无法进行
// await Promise.all([ // await Promise.all([
@ -107,52 +129,56 @@ async function PrizeIndex() {
const prizeList = [...$.queryPrizeData]; const prizeList = [...$.queryPrizeData];
if (prizeList && prizeList.length) { if (prizeList && prizeList.length) {
if (`${coinToBeans}` === '1000') { if (`${coinToBeans}` === '1000') {
if (prizeList[0] && prizeList[0].type === 3) {
console.log(`查询换${prizeList[0].name}ID成功ID:${prizeList[0].prizeId}`)
$.title = prizeList[0].name;
$.blueCost = prizeList[0].cost;
} else {
console.log(`查询换1000京豆ID失败`)
$.beanerr = `东哥今天不给换`;
return ;
}
if (prizeList[0] && prizeList[0].inStock === 506) {
$.beanerr = `失败1000京豆领光了请明天再来`;
return ;
}
if (prizeList[0] && prizeList[0].limit === prizeList[0] && prizeList[0].finished) {
$.beanerr = `${prizeList[0].name}`;
return ;
}
//兑换1000京豆
if ($.totalBlue > $.blueCost) {
await smtg_obtainPrize(prizeList[0].prizeId);
} else {
console.log(`兑换失败,您目前蓝币${$.totalBlue}个,不足以兑换${$.title}所需的${$.blueCost}`);
$.beanerr = `兑换失败,您目前蓝币${$.totalBlue}个,不足以兑换${$.title}所需的${$.blueCost}`;
}
} else if (`${coinToBeans}` === '20') {
if (prizeList[1] && prizeList[1].type === 3) { if (prizeList[1] && prizeList[1].type === 3) {
console.log(`查询换${prizeList[1].name}ID成功ID:${prizeList[1].prizeId}`) console.log(`查询换${prizeList[1].name}ID成功ID:${prizeList[1].prizeId}`)
$.title = prizeList[1].name; $.title = prizeList[1].name;
$.blueCost = prizeList[1].cost; $.blueCost = prizeList[1].cost;
} else {
console.log(`查询换1000京豆ID失败`)
$.beanerr = `东哥今天不给换`;
return ;
}
// if (prizeList[1] && prizeList[1].status === 2) {
// $.beanerr = `失败1000京豆领光了请明天再来`;
// return ;
// }
if (prizeList[1] && prizeList[1].limit === prizeList[1] && prizeList[1].finished) {
$.beanerr = `${prizeList[1].name}`;
return ;
}
//兑换1000京豆
if ($.totalBlue > $.blueCost) {
for (let j = 0; j <= 10; j++) {
await smtg_obtainPrize(prizeList[1].prizeId);
}
} else {
console.log(`兑换失败,您目前蓝币${$.totalBlue}个,不足以兑换${$.title}所需的${$.blueCost}`);
$.beanerr = `兑换失败,您目前蓝币${$.totalBlue}个,不足以兑换${$.title}所需的${$.blueCost}`;
}
} else if (`${coinToBeans}` === '20') {
if (prizeList[0] && prizeList[0].type === 3) {
console.log(`查询换${prizeList[0].name}ID成功ID:${prizeList[0].prizeId}`)
$.title = prizeList[0].name;
$.blueCost = prizeList[0].cost;
} else { } else {
console.log(`查询换万能的京豆ID失败`) console.log(`查询换万能的京豆ID失败`)
$.beanerr = `东哥今天不给换`; $.beanerr = `东哥今天不给换`;
return ; return ;
} }
if (prizeList[0] && prizeList[0].inStock === 506) { // if (prizeList[0] && prizeList[0].status === 2) {
console.log(`失败,万能的京豆领光了,请明天再来`); // console.log(`失败,万能的京豆领光了,请明天再来`);
$.beanerr = `失败,万能的京豆领光了,请明天再来`; // $.beanerr = `失败,万能的京豆领光了,请明天再来`;
return ; // return ;
} // }
if ((prizeList[0] && prizeList[0].limit) === (prizeList[0] && prizeList[0].finished)) { if ((prizeList[0] && prizeList[0].limit) === (prizeList[0] && prizeList[0].finished)) {
$.beanerr = `${prizeList[0].name}`; $.beanerr = `${prizeList[0].name}`;
return ; return ;
} }
//兑换万能的京豆(1-20京豆) //兑换万能的京豆(1-20京豆)
if ($.totalBlue > $.blueCost) { if ($.totalBlue > $.blueCost) {
await smtg_obtainPrize(prizeList[0].prizeId,1000); for (let j = 0; j <= 10; j++) {
await smtg_obtainPrize(prizeList[0].prizeId, 1000);
}
} else { } else {
console.log(`兑换失败,您目前蓝币${$.totalBlue}个,不足以兑换${$.title}所需的${$.blueCost}`); console.log(`兑换失败,您目前蓝币${$.totalBlue}个,不足以兑换${$.title}所需的${$.blueCost}`);
$.beanerr = `兑换失败,您目前蓝币${$.totalBlue}个,不足以兑换${$.title}所需的${$.blueCost}`; $.beanerr = `兑换失败,您目前蓝币${$.totalBlue}个,不足以兑换${$.title}所需的${$.blueCost}`;
@ -183,9 +209,13 @@ async function PrizeIndex() {
} }
if ($.totalBlue > $.blueCost) { if ($.totalBlue > $.blueCost) {
if ($.type === 4 && !$.beanType) { if ($.type === 4 && !$.beanType) {
await smtg_obtainPrize(prizeId, 0, "smtg_lockMaterialPrize") for (let j = 0; j <= 10; j++) {
await smtg_obtainPrize(prizeId, 0, "smtg_lockMaterialPrize")
}
} else { } else {
await smtg_obtainPrize(prizeId); for (let j = 0; j <= 10; j++) {
await smtg_obtainPrize(prizeId);
}
} }
} else { } else {
console.log(`兑换失败,您目前蓝币${$.totalBlue}个,不足以兑换${$.title}所需的${$.blueCost}`); console.log(`兑换失败,您目前蓝币${$.totalBlue}个,不足以兑换${$.title}所需的${$.blueCost}`);
@ -349,7 +379,7 @@ function smtg_obtainPrize(prizeId, timeout = 0, functionId = 'smt_exchangePrize'
} }
} }
} }
await smtg_obtainPrize(prizeId,3000); await smtg_obtainPrize(prizeId, 3000);
} catch (e) { } catch (e) {
$.logErr(e, resp); $.logErr(e, resp);
} finally { } finally {
@ -361,7 +391,7 @@ function smtg_obtainPrize(prizeId, timeout = 0, functionId = 'smt_exchangePrize'
} }
function smtgHome() { function smtgHome() {
return new Promise((resolve) => { return new Promise((resolve) => {
$.get(taskUrl('smtg_home'), (err, resp, data) => { $.get(taskUrl('smtg_newHome'), (err, resp, data) => {
try { try {
if (err) { if (err) {
console.log('\n东东超市兑换奖品: API查询请求失败 ‼️‼️') console.log('\n东东超市兑换奖品: API查询请求失败 ‼️‼️')
@ -386,7 +416,9 @@ function smtgHome() {
}) })
}) })
} }
function sleep(timeout) {
return new Promise((resolve) => setTimeout(resolve, timeout));
}
//通知 //通知
function msgShow() { function msgShow() {
// $.msg($.name, ``, `【京东账号${$.index}】${$.nickName}\n【收取蓝币】${$.coincount ? `${$.coincount}个` : $.coinerr }${coinToBeans ? `\n【兑换京豆】${ $.beanscount ? `${$.beanscount}个` : $.beanerr}` : ""}`); // $.msg($.name, ``, `【京东账号${$.index}】${$.nickName}\n【收取蓝币】${$.coincount ? `${$.coincount}个` : $.coinerr }${coinToBeans ? `\n【兑换京豆】${ $.beanscount ? `${$.beanscount}个` : $.beanerr}` : ""}`);