jd_bean_change.js 增加 每月一日统计上月京豆收支(node端默认关闭)

This commit is contained in:
lxk0301
2021-04-22 18:06:49 +08:00
parent d781a5e7ab
commit 49dfc94387
2 changed files with 81 additions and 5 deletions

View File

@ -90,6 +90,7 @@
| `CFD_NOTIFY_CONTROL` | 京喜财富岛<br>控制是否运行脚本后通知 | 非必须 | 输入`true`为通知,不填则为不通知 | | `CFD_NOTIFY_CONTROL` | 京喜财富岛<br>控制是否运行脚本后通知 | 非必须 | 输入`true`为通知,不填则为不通知 |
| `JD_JXD_EXCHANGE` | 京小兑<br>自动把抽奖卷兑换为兑币,默认否 | 非必须 | 输入`true`为自动兑换,不填则为不兑换 | | `JD_JXD_EXCHANGE` | 京小兑<br>自动把抽奖卷兑换为兑币,默认否 | 非必须 | 输入`true`为自动兑换,不填则为不兑换 |
| `JXNC_NOTIFY_LEVEL` | 京喜农场通知控制<br>推送开关,默认1 | 非必须 | 通知级别 0=只通知成熟;1=本次获得水滴>0;2=任务执行;3=任务执行+未种植种子 | | `JXNC_NOTIFY_LEVEL` | 京喜农场通知控制<br>推送开关,默认1 | 非必须 | 通知级别 0=只通知成熟;1=本次获得水滴>0;2=任务执行;3=任务执行+未种植种子 |
| `LAST_MONTH_BEAN` | 京东资产变动通知<br>是否在每月一日统计上月京豆收支| 非必须 | 默认否,如需每月一日统计上月京豆收支,则填`true` |
##### 互助码的填写规则 ##### 互助码的填写规则

View File

@ -2,7 +2,7 @@
* @Author: lxk0301 https://gitee.com/lxk0301 * @Author: lxk0301 https://gitee.com/lxk0301
* @Date: 2020-11-01 16:25:41 * @Date: 2020-11-01 16:25:41
* @Last Modified by: lxk0301 * @Last Modified by: lxk0301
* @Last Modified time: 2021-04-21 15:25:41 * @Last Modified time: 2021-04-22 15:25:41
*/ */
/* /*
京东资产变动通知脚本https://gitee.com/lxk0301/jd_scripts/raw/master/jd_bean_change.js 京东资产变动通知脚本https://gitee.com/lxk0301/jd_scripts/raw/master/jd_bean_change.js
@ -31,7 +31,7 @@ const notify = $.isNode() ? require('./sendNotify') : '';
const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; const jdCookieNode = $.isNode() ? require('./jdCookie.js') : '';
let allMessage = ''; let allMessage = '';
//IOS等用户直接用NobyDa的jd cookie //IOS等用户直接用NobyDa的jd cookie
let cookiesArr = [], cookie = ''; let cookiesArr = [], cookie = '', beanMessage = '';
if ($.isNode()) { if ($.isNode()) {
Object.keys(jdCookieNode).forEach((item) => { Object.keys(jdCookieNode).forEach((item) => {
cookiesArr.push(jdCookieNode[item]) cookiesArr.push(jdCookieNode[item])
@ -57,6 +57,7 @@ if ($.isNode()) {
$.isLogin = true; $.isLogin = true;
$.nickName = ''; $.nickName = '';
$.message = ''; $.message = '';
beanMessage = '';
$.balance = 0; $.balance = 0;
$.expiredBalance = 0; $.expiredBalance = 0;
await TotalBean(); await TotalBean();
@ -86,11 +87,12 @@ if ($.isNode()) {
}) })
async function showMsg() { async function showMsg() {
if ($.errorMsg) return if ($.errorMsg) return
allMessage += `账号${$.index}${$.nickName || $.UserName}\n昨日收入:${$.incomeBean}京豆 🐶\n昨日支出:${$.expenseBean}京豆 🐶\n当前京豆:${$.beanCount}(今日将过期${$.expirejingdou})京豆 🐶${$.message}${$.index !== cookiesArr.length ? '\n\n' : ''}`; beanMessage += `昨日收入:${$.incomeBean}京豆 🐶\n昨日支出:${$.expenseBean}京豆 🐶\n当前京豆:${$.beanCount}(今日将过期${$.expirejingdou})京豆 🐶`;
allMessage += `账号${$.index}${$.nickName || $.UserName}\n${beanMessage}${$.message}${$.index !== cookiesArr.length ? '\n\n' : ''}`;
// if ($.isNode()) { // if ($.isNode()) {
// await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `账号${$.index}${$.nickName || $.UserName}\n昨日收入${$.incomeBean}京豆 🐶\n昨日支出${$.expenseBean}京豆 🐶\n当前京豆${$.beanCount}京豆 🐶${$.message}`, { url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` }) // await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `账号${$.index}${$.nickName || $.UserName}\n昨日收入${$.incomeBean}京豆 🐶\n昨日支出${$.expenseBean}京豆 🐶\n当前京豆${$.beanCount}京豆 🐶${$.message}`, { url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` })
// } // }
$.msg($.name, '', `账号${$.index}${$.nickName || $.UserName}\n昨日收入:${$.incomeBean}京豆 🐶\n昨日支出:${$.expenseBean}京豆 🐶\n当前京豆:${$.beanCount}(今日将过期${$.expirejingdou})京豆🐶${$.message}`, {"open-url": "https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean"}); $.msg($.name, '', `账号${$.index}${$.nickName || $.UserName}\n${beanMessage}${$.message}`, {"open-url": "https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean"});
} }
async function bean() { async function bean() {
// console.log(`北京时间零点时间戳:${parseInt((Date.now() + 28800000) / 86400000) * 86400000 - 28800000}`); // console.log(`北京时间零点时间戳:${parseInt((Date.now() + 28800000) / 86400000) * 86400000 - 28800000}`);
@ -111,7 +113,7 @@ async function bean() {
if (detailList && detailList.length > 0) { if (detailList && detailList.length > 0) {
for (let item of detailList) { for (let item of detailList) {
const date = item.date.replace(/-/g, '/') + "+08:00"; const date = item.date.replace(/-/g, '/') + "+08:00";
if (tm <= new Date(date).getTime() && new Date(date).getTime() < tm1) { if (tm <= new Date(date).getTime() && new Date(date).getTime() < tm1 && (!item['eventMassage'].includes("退还") && !item['eventMassage'].includes('扣赠'))) {
//昨日的 //昨日的
yesterdayArr.push(item); yesterdayArr.push(item);
} else if (tm > new Date(date).getTime()) { } else if (tm > new Date(date).getTime()) {
@ -141,11 +143,84 @@ async function bean() {
$.expenseBean += Number(item.amount); $.expenseBean += Number(item.amount);
} }
} }
if (new Date().getDate() === 1) {
if ($.isNode()) {
if (process.env.LAST_MONTH_BEAN && process.env.LAST_MONTH_BEAN === 'true') await monthBean()
} else {
await monthBean()
}
}
await queryexpirejingdou();//过期京豆 await queryexpirejingdou();//过期京豆
await redPacket();//过期红包 await redPacket();//过期红包
// console.log(`昨日收入:${$.incomeBean}个京豆 🐶`); // console.log(`昨日收入:${$.incomeBean}个京豆 🐶`);
// console.log(`昨日支出:${$.expenseBean}个京豆 🐶`) // console.log(`昨日支出:${$.expenseBean}个京豆 🐶`)
} }
async function monthBean() {
$.monthIncomeBean = 0;
$.monthExpenseBean = 0;
const nowdays = new Date()
let year = nowdays.getFullYear()
let month = nowdays.getMonth()
if (month === 0) {
month = 12;
year = year - 1;
}
if (month < 10) {
month = '0' + month;
}
const myDate = new Date(year, month, 0)
const startDate = year + '/' + month + '/01 00:00:00' + "+08:00" //上个月第一天
const endDate = year + '/' + month + '/' + myDate.getDate() + ' 23:59:59' + "+08:00"//上个月最后一天
// console.log(startDate, endDate)
//上月第一天0:0:0时间戳
const tm = parseInt(new Date(startDate).getTime());
//上月最后一天23:59:59时间戳
const tm1 = parseInt(new Date(endDate).getTime());
let page = 1, t = 0, monthArr = [];
do {
let response = await getJingBeanBalanceDetail(page);
await $.wait(200)
console.log(`${page}页: ${JSON.stringify(response)}`);
if (response && response.code === "0") {
page++;
let detailList = response.detailList;
if (detailList && detailList.length > 0) {
for (let item of detailList) {
const date = item.date.replace(/-/g, '/') + "+08:00";
if (tm <= new Date(date).getTime() && new Date(date).getTime() <= tm1 && (!item['eventMassage'].includes("退还") && !item['eventMassage'].includes('扣赠'))) {
//上个月的
monthArr.push(item);
} else if (tm > new Date(date).getTime()) {
//上两个月的
t = 1;
break;
}
}
} else {
$.errorMsg = `数据异常`;
$.msg($.name, ``, `账号${$.index}${$.nickName}\n${$.errorMsg}`);
t = 1;
}
} else if (response && response.code === "3") {
console.log(`cookie已过期或者填写不规范跳出`)
t = 1;
} else {
console.log(`未知情况:${JSON.stringify(response)}`);
console.log(`未知情况,跳出`)
t = 1;
}
} while (t === 0);
for (let item of monthArr) {
if (Number(item.amount) > 0) {
$.monthIncomeBean += Number(item.amount);
} else if (Number(item.amount) < 0) {
$.monthExpenseBean += Number(item.amount);
}
}
beanMessage += `上月收入:${$.monthIncomeBean}京豆 🐶\n上月支出:${$.monthExpenseBean}京豆 🐶\n`
}
function TotalBean() { function TotalBean() {
return new Promise(async resolve => { return new Promise(async resolve => {
const options = { const options = {