增加node端抽奖后中奖发送推送通知,增加已中奖但未兑换时发送通知提醒

This commit is contained in:
wisz2021
2021-05-25 09:22:57 +08:00
parent da3d9f04cf
commit 3596ed6524

View File

@ -2,7 +2,7 @@
* @Author: LXK9301 https://github.com/LXK9301
* @Date: 2020-11-03 09:25:47
* @Last Modified by: LXK9301
* @Last Modified time: 2021-4-3 15:27:07
* @Last Modified time: 2021-5-25 09:27:07
*/
/*
京东手机狂欢城活动每日可获得20+以上京豆其中20京豆是往期奖励需第一天参加活动后第二天才能拿到
@ -152,6 +152,7 @@ async function JD818() {
await getListRank();
await getListIntegral();
await getListJbean();
await check();//查询抽奖记录(未兑换的,发送提醒通知);
await showMsg()
} catch (e) {
$.logErr(e)
@ -398,8 +399,12 @@ function lottery() {
data = JSON.parse(data);
if (data.code === 200) {
if (data.data.prizeId !== 8) {
//已中奖
const url = 'https://carnivalcity.m.jd.com/#/integralDetail';
console.log(`积分抽奖获得:${data.data.prizeName}`);
message += `积分抽奖获得:${data.data.prizeName}\n`
message += `积分抽奖获得:${data.data.prizeName}\n`;
$.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']}}`);
}
@ -413,6 +418,80 @@ function lottery() {
})
});
}
//查询抽奖记录(未兑换的)
function check() {
const options = taskUrl('/khc/record/convertRecord', { t: Date.now(), pageNum: 1 })
return new Promise( (resolve) => {
$.get(options, async (err, resp, data) => {
try {
if (err) {
console.log(`${JSON.stringify(err)}`)
console.log(`${$.name} API请求失败请检查网路重试`)
} else {
data = JSON.parse(data);
let str = '';
if (data.code === 200) {
for (let obj of data.data) {
if (obj.hasOwnProperty('fillStatus') && obj.fillStatus !== true) {
str += JSON.stringify(obj);
}
}
}
if (str.length > 0) {
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}`);
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
})
});
return new Promise((resolve)=>{
var request = require('request');
let timestamp = (new Date()).getTime()
var headers = {
'Sgm-Context': '144512924112128160;144512924112128160',
'Host': 'carnivalcity.m.jd.com',
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1 Mobile/15E148 Safari/604.1',
'sign': 'c5a92160e87206287af0faee2b056429',
'Referer': 'https://carnivalcity.m.jd.com/',
'timestamp': `${timestamp}`,
'Cookie': cookie
};
var options = {
url: `https://carnivalcity.m.jd.com/khc/record/convertRecord?pageNum=1&t=${timestamp}`,
headers: headers
};
async function callback(error, response, body) {
if (!error && response.statusCode == 200) {
// $.log(body);
let result = JSON.parse(body)
let message = ""
if (result.data.length > 0) {
message += message += `\n开始【京东账号${$.index}${$.nickName || $.UserName}\n`
}
for (let obj of result.data) {
if (obj.hasOwnProperty('fillStatus') && obj.fillStatus != true) {
message += JSON.stringify(obj)
}
}
if (message.length > 0) {
await notify.sendNotify($.name, message);
}
resolve()
}
}
request(options, callback);
})
}
function myRank() {
return new Promise(resolve => {
const body = {
@ -596,8 +675,10 @@ function getListIntegral() {
if (data.code === 200) {
$.integralCount = data.data.integralNum || 0;//累计活动积分
message += `累计获得积分:${$.integralCount}\n`;
console.log(`开始抽奖,当前积分可抽奖${parseInt($.integralCount / 50)}\n`);
for (let i = 0; i < parseInt($.integralCount / 50); i ++) {
await lottery();
await $.wait(500);
}
} else {
console.log(`integralRecord失败${JSON.stringify(data)}`);