This commit is contained in:
Faker 2024-05-12 16:09:54 +08:00
parent 9e68f45783
commit c4a1b6887d
3 changed files with 476 additions and 154 deletions

20
jd_dplh0512.js Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -21,7 +21,9 @@ const querystring = require('querystring');
const exec = require('child_process').exec;
const $ = new Env();
const timeout = 15000; //超时时间(单位毫秒)
console.log("加载sendNotify当前版本: 20230712");
console.log("\n====加载sendNotify频道https://t.me/scriptalking====\n");
const common = require('./utils/Rebels_jdCommon');
$.UA = common.genUA($.UserName);
// =======================================go-cqhttp通知设置区域===========================================
//gobot_url 填写请求地址http://127.0.0.1/send_private_msg
//gobot_token 填写在go-cqhttp文件设置的访问密钥
@ -36,6 +38,11 @@ let GOBOT_QQ = ''; // 如果GOBOT_URL设置 /send_private_msg 则需要填入 us
//(环境变量名 PUSH_KEY)
let SCKEY = '';
// =======================================PushDeer通知设置区域===========================================
//此处填你申请的PushDeer KEY.
//(环境变量名 DEER_KEY)
let PUSHDEER_KEY = '';
// =======================================Bark App通知设置区域===========================================
//此处填你BarkAPP的信息(IP/设备码例如https://api.day.app/XXXXXXXX)
let BARK_PUSH = '';
@ -81,6 +88,12 @@ let QYWX_KEY = '';
*/
let QYWX_AM = '';
// =======================================飞书机器人通知设置区域===========================================
//此处填你飞书机器人的 webhook(详见文档 https://open.feishu.cn/document/ukTMukTMukTM/ucTM5YjL3ETO24yNxkjN)
//(环境变量名 FS_KEY)
let FS_KEY = '';
// =======================================iGot聚合推送通知设置区域===========================================
//此处填您iGot的信息(推送key例如https://push.hellyw.com/XXXXXXXX)
let IGOT_PUSH_KEY = '';
@ -129,11 +142,11 @@ let ShowRemarkType = "1";
let Notify_NoCKFalse = "false";
let Notify_NoLoginSuccess = "false";
let UseGroupNotify = 1;
const {
getEnvs,
DisableCk,
getEnvByPtPin
} = require('./ql');
//const {
// getEnvs,
// DisableCk,
// getEnvByPtPin
//} = require('./function/ql');
const fs = require('fs');
let isnewql = fs.existsSync('/ql/data/config/auth.json');
let strCKFile = "";
@ -150,7 +163,7 @@ if (isnewql) {
let Fileexists = fs.existsSync(strCKFile);
let TempCK = [];
if (Fileexists) {
console.log("检测到别名缓存文件CKName_cache.json载入...");
//console.log("检测到别名缓存文件CKName_cache.json载入...");
TempCK = fs.readFileSync(strCKFile, 'utf-8');
if (TempCK) {
TempCK = TempCK.toString();
@ -161,7 +174,7 @@ if (Fileexists) {
let UidFileexists = fs.existsSync(strUidFile);
let TempCKUid = [];
if (UidFileexists) {
console.log("检测到一对一Uid文件WxPusherUid.json载入...");
//console.log("检测到一对一Uid文件WxPusherUid.json载入...");
TempCKUid = fs.readFileSync(strUidFile, 'utf-8');
if (TempCKUid) {
TempCKUid = TempCKUid.toString();
@ -179,17 +192,10 @@ let Notify_SkipText = [];
let isLogin = false;
if (process.env.NOTIFY_SHOWNAMETYPE) {
ShowRemarkType = process.env.NOTIFY_SHOWNAMETYPE;
if (ShowRemarkType == "2")
console.log("检测到显示备注名称,格式为: 京东别名(备注)");
if (ShowRemarkType == "3")
console.log("检测到显示备注名称,格式为: 京东账号(备注)");
if (ShowRemarkType == "4")
console.log("检测到显示备注名称,格式为: 备注");
}
async function sendNotify(text, desp, params = {}, author = '\n\n本通知 By ccwav Mod', strsummary = "") {
async function sendNotify(text, desp, params = {}, author = '\n\n本通知 By https://github.com/shufflewzc/faker2',strsummary="") {
console.log(`开始发送通知...`);
//NOTIFY_FILTERBYFILE代码来自Ca11back.
if (process.env.NOTIFY_FILTERBYFILE) {
var no_notify = process.env.NOTIFY_FILTERBYFILE.split('&');
if (module.parent.filename) {
@ -214,6 +220,7 @@ async function sendNotify(text, desp, params = {}, author = '\n\n本通知 By cc
GOBOT_TOKEN = '';
GOBOT_QQ = '';
SCKEY = '';
PUSHDEER_KEY= '';
BARK_PUSH = '';
BARK_SOUND = '';
BARK_GROUP = 'QingLong';
@ -227,6 +234,7 @@ async function sendNotify(text, desp, params = {}, author = '\n\n本通知 By cc
DD_BOT_SECRET = '';
QYWX_KEY = '';
QYWX_AM = '';
FS_KEY = '';
IGOT_PUSH_KEY = '';
PUSH_PLUS_TOKEN = '';
PUSH_PLUS_USER = '';
@ -235,18 +243,20 @@ async function sendNotify(text, desp, params = {}, author = '\n\n本通知 By cc
//变量开关
var Use_serverNotify = true;
var Use_pushdeerNotify = true;
var Use_pushPlusNotify = true;
var Use_BarkNotify = true;
var Use_tgBotNotify = true;
var Use_ddBotNotify = true;
var Use_qywxBotNotify = true;
var Use_qywxamNotify = true;
var Use_fsBotNotify = true;
var Use_iGotNotify = true;
var Use_gobotNotify = true;
var Use_WxPusher = true;
var strtext = text;
var strdesp = desp;
var titleIndex = -1;
var titleIndex =-1;
if (process.env.NOTIFY_NOCKFALSE) {
Notify_NoCKFalse = process.env.NOTIFY_NOCKFALSE;
}
@ -273,10 +283,17 @@ async function sendNotify(text, desp, params = {}, author = '\n\n本通知 By cc
if (Notify_CKTask) {
console.log("触发CK脚本开始执行....");
Notify_CKTask = "task " + Notify_CKTask + " now";
await exec(Notify_CKTask, function (error, stdout, stderr) {
console.log(error, stdout, stderr)
});
await exec(`ps -ef|grep -v grep|grep ${Notify_CKTask}`, async function (err, stdout, stderr){
if (!stdout) {
Notify_CKTask = "task " + Notify_CKTask + " now";
console.log(Notify_CKTask)
await exec(Notify_CKTask);
} else {
console.log('已有相同任务在执行,跳过此次执行!\n')
return
}
})
}
}
if (process.env.NOTIFY_AUTOCHECKCK == "true") {
@ -366,24 +383,24 @@ async function sendNotify(text, desp, params = {}, author = '\n\n本通知 By cc
if (DisableCkBody.code == 200) {
console.log(`京东账号` + strdecPtPin + `已失效,自动禁用成功!\n`);
strNotifyOneTemp = `京东账号: ` + strdecPtPin + ` 已失效,自动禁用成功!\n如果要继续挂机,请联系管理员重新登录账号账号有效期为30天.`;
strNotifyOneTemp = `京东账号: ` + strdecPtPin + ` 已失效,自动禁用!\n如果要继续挂机,请重新登录账号账号有效期为30天.`;
strNotifyOneTemp += "\n任务标题" + strtext;
if (strAllNotify)
strNotifyOneTemp += `\n` + strAllNotify;
desp = strNotifyOneTemp;
if (WP_APP_TOKEN_ONE) {
await sendNotifybyWxPucher(`账号过期下线通知`, strNotifyOneTemp, strdecPtPin,'\n\n本通知 By ccwav Mod',`账号下线通知`);
await sendNotifybyWxPucher(`账号过期下线通知`, strNotifyOneTemp, strdecPtPin);
}
} else {
console.log(`京东账号` + strPtPin + `已失效,自动禁用失败!\n`);
strNotifyOneTemp = `京东账号: ` + strdecPtPin + ` 已失效!\n如果要继续挂机,请联系管理员重新登录账号账号有效期为30天.`;
strNotifyOneTemp = `京东账号: ` + strdecPtPin + ` 已失效!\n如果要继续挂机,请重新登录账号账号有效期为30天.`;
strNotifyOneTemp += "\n任务标题" + strtext;
if (strAllNotify)
strNotifyOneTemp += `\n` + strAllNotify;
desp = strNotifyOneTemp;
if (WP_APP_TOKEN_ONE) {
await sendNotifybyWxPucher(`账号过期下线通知`, strNotifyOneTemp, strdecPtPin,'\n\n本通知 By ccwav Mod',`账号下线通知`);
await sendNotifybyWxPucher(`账号过期下线通知`, strNotifyOneTemp, strdecPtPin);
}
}
} else {
@ -452,9 +469,18 @@ async function sendNotify(text, desp, params = {}, author = '\n\n本通知 By cc
}
}
if (strTitle == "汪汪乐园养joy领取" && WP_APP_TOKEN_ONE) {
console.log(`捕获汪汪乐园养joy领取通知开始尝试一对一推送...`);
var strPtPin = await GetPtPin(text);
var strdecPtPin = decodeURIComponent(strPtPin);
if (strPtPin) {
await sendNotifybyWxPucher("汪汪乐园领取通知", `【京东账号】${strdecPtPin}\n当前等级: 30\n请到京东极速版APP提现6.66\n活动入口京东极速版APP->我的->汪汪乐园->点礼包`, strdecPtPin);
}
}
console.log("通知标题: " + strTitle);
//检查黑名单屏蔽通知
//检查黑名单屏蔽通知
const notifySkipList = process.env.NOTIFY_SKIP_LIST ? process.env.NOTIFY_SKIP_LIST.split('&') : [];
titleIndex = notifySkipList.findIndex((item) => item === strTitle);
@ -494,11 +520,13 @@ async function sendNotify(text, desp, params = {}, author = '\n\n本通知 By cc
if (strCustomTempArr.length > 2) {
console.log("关闭所有通知变量...");
Use_serverNotify = false;
Use_pushdeerNotify = false;
Use_pushPlusNotify = false;
Use_BarkNotify = false;
Use_tgBotNotify = false;
Use_ddBotNotify = false;
Use_qywxBotNotify = false;
Use_fsBotNotify = false;
Use_qywxamNotify = false;
Use_iGotNotify = false;
Use_gobotNotify = false;
@ -509,6 +537,10 @@ async function sendNotify(text, desp, params = {}, author = '\n\n本通知 By cc
case "Server酱":
Use_serverNotify = true;
console.log("自定义设定启用Server酱进行通知...");
break;
case "pushdeer":
Use_pushdeerNotify = true;
console.log("自定义设定启用pushdeer进行通知...");
break;
case "pushplus":
Use_pushPlusNotify = true;
@ -533,6 +565,10 @@ async function sendNotify(text, desp, params = {}, author = '\n\n本通知 By cc
case "企业微信应用消息":
Use_qywxamNotify = true;
console.log("自定义设定启用企业微信应用消息进行通知...");
break;
case "飞书机器人":
Use_fsBotNotify = true;
console.log("自定义设定启用飞书机器人进行通知...");
break;
case "iGotNotify":
Use_iGotNotify = true;
@ -587,7 +623,9 @@ async function sendNotify(text, desp, params = {}, author = '\n\n本通知 By cc
if (process.env["PUSH_KEY" + UseGroupNotify] && Use_serverNotify) {
SCKEY = process.env["PUSH_KEY" + UseGroupNotify];
}
if (process.env["DEER_KEY"+ UseGroupNotify] && Use_pushdeerNotify) {
PUSHDEER_KEY = process.env["DEER_KEY"+ UseGroupNotify];
}
if (process.env["WP_APP_TOKEN" + UseGroupNotify] && Use_WxPusher) {
WP_APP_TOKEN = process.env["WP_APP_TOKEN" + UseGroupNotify];
}
@ -648,6 +686,10 @@ async function sendNotify(text, desp, params = {}, author = '\n\n本通知 By cc
QYWX_AM = process.env["QYWX_AM" + UseGroupNotify];
}
if (process.env["FS_KEY" + UseGroupNotify] && Use_fsBotNotify) {
FS_KEY = process.env["FS_KEY" + UseGroupNotify];
}
if (process.env["IGOT_PUSH_KEY" + UseGroupNotify] && Use_iGotNotify) {
IGOT_PUSH_KEY = process.env["IGOT_PUSH_KEY" + UseGroupNotify];
}
@ -684,7 +726,7 @@ async function sendNotify(text, desp, params = {}, author = '\n\n本通知 By cc
if (envs[0]) {
var strTempdesp = [];
var strAllNotify = "";
if (text == "京东资产变动" || text == "京东资产变动#2" || text == "京东资产变动#3" || text == "京东资产变动#4") {
if (text == "京东资产统计" || text == "京东资产统计#2" || text == "京东资产统计#3" || text == "京东资产统计#4") {
strTempdesp = desp.split('🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏');
if (strTempdesp.length == 2) {
strAllNotify = strTempdesp[0];
@ -749,7 +791,7 @@ async function sendNotify(text, desp, params = {}, author = '\n\n本通知 By cc
//额外处理1nickName包含星号
$.nickName = $.nickName.replace(new RegExp(`[*]`, 'gm'), "[*]");
text = text.replace(new RegExp(`${$.UserName}|${$.nickName}`, 'gm'), $.Remark);
if (text == "京东资产变动" || text == "京东资产变动#2" || text == "京东资产变动#3" || text == "京东资产变动#4") {
if (text == "京东资产统计" || text == "京东资产统计#2" || text == "京东资产统计#3" || text == "京东资产统计#4") {
var Tempinfo = "";
if (envs[i].created)
Tempinfo = getQLinfo(cookie, envs[i].created, envs[i].timestamp, envs[i].remarks);
@ -812,7 +854,7 @@ async function sendNotify(text, desp, params = {}, author = '\n\n本通知 By cc
//提供6种通知
desp = buildLastDesp(desp, author);
await serverNotify(text, desp); //微信server酱
await serverNotify(text, desp); //微信server酱
if (PUSH_PLUS_TOKEN) {
console.log("PUSH_PLUS TOKEN :" + PUSH_PLUS_TOKEN);
@ -842,12 +884,14 @@ async function sendNotify(text, desp, params = {}, author = '\n\n本通知 By cc
ddBotNotify(text, desp), //钉钉机器人
qywxBotNotify(text, desp), //企业微信机器人
qywxamNotify(text, desp, strsummary), //企业微信应用消息推送
fsBotNotify(text, desp), //飞书机器人
iGotNotify(text, desp, params), //iGot
gobotNotify(text, desp), //go-cqhttp
gotifyNotify(text, desp), //gotify
bncrNotify(text, desp), //bncr
wxpusherNotify(text, desp) // wxpusher
]);
wxpusherNotify(text, desp), // wxpusher
PushDeerNotify(text, desp) //pushdeer推送
]);
}
function getuuid(strRemark, PtPin) {
@ -909,14 +953,15 @@ function getQLinfo(strCK, intcreated, strTimestamp, strRemark) {
}
}
//过期时间
//过期时间
var UseDay = Math.ceil((DateToday.getTime() - DateCreated.getTime()) / 86400000);
var LogoutDay = 30 - Math.ceil((DateToday.getTime() - DateTimestamp.getTime()) / 86400000);
if (LogoutDay < 1) {
strReturn = "\n【登录信息】总挂机" + UseDay + "天(账号即将到期,请重登续期)"
} else {
strReturn = "\n【登录信息】总挂机" + UseDay + "天(有效期约剩" + LogoutDay + "天)"
}
let Loginday = Math.ceil((DateToday.getTime() - DateTimestamp.getTime()) / 86400000)
//if (LogoutDay < 1) {
strReturn = "\n【登录信息】已服务" + UseDay + "天(已登录" + Loginday + "天)"
//} else {
// strReturn = "\n【登录信息】已服务" + UseDay + "天(有效期约剩" + LogoutDay + "天)"
//}
}
return strReturn
@ -939,14 +984,14 @@ function getRemark(strRemark) {
}
}
async function sendNotifybyWxPucher(text, desp, PtPin, author = '\n\n本通知 By ccwav Mod', strsummary = "") {
async function sendNotifybyWxPucher(text, desp, PtPin, author = '\n\n本通知 By Faker', strsummary = "") {
try {
var Uid = "";
var UserRemark = "";
var strTempdesp = [];
var strAllNotify = "";
if (text == "京东资产变动") {
if (text == "京东资产统计") {
strTempdesp = desp.split('🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏');
if (strTempdesp.length == 2) {
strAllNotify = strTempdesp[0];
@ -967,7 +1012,7 @@ async function sendNotifybyWxPucher(text, desp, PtPin, author = '\n\n本通知 B
WP_UIDS_ONE = Uid;
console.log("正在发送一对一通知,请稍后...");
if (text == "京东资产变动") {
if (text == "京东资产统计") {
try {
$.nickName = "";
$.FoundPin = "";
@ -1026,12 +1071,8 @@ async function sendNotifybyWxPucher(text, desp, PtPin, author = '\n\n本通知 B
}
}
if (UserRemark) {
text += " (" + UserRemark + ")";
if(strsummary){
strsummary="(" + UserRemark + ")"+strsummary;
}
text = text + " (" + UserRemark + ")";
}
console.log("处理完成,开始发送通知...");
desp = buildLastDesp(desp, author);
if (strAllNotify) {
@ -1075,7 +1116,7 @@ async function GetPtPin(text) {
return strPtPin;
} else {
console.log(`别名反查PtPin失败: 1.用户更改了别名 2.可能是新用户,别名缓存还没有。`);
return "";
return strNickName;
}
}
} else {
@ -1283,46 +1324,6 @@ function serverNotify(text, desp, time = 2100) {
});
}
/* function BarkNotify(text, desp, params = {}) {
return new Promise((resolve) => {
if (BARK_PUSH) {
const options = {
url: `${BARK_PUSH}/${encodeURIComponent(text)}/${encodeURIComponent(
desp
)}?sound=${BARK_SOUND}&group=${BARK_GROUP}&${querystring.stringify(params)}`,
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
timeout,
};
$.get(options, (err, resp, data) => {
try {
if (err) {
console.log('Bark APP发送通知调用API失败\n');
console.log(err);
} else {
data = JSON.parse(data);
if (data.code === 200) {
console.log('Bark APP发送通知消息成功🎉\n');
} else {
console.log(`${data.message}\n`);
}
}
} catch (e) {
$.logErr(e, resp);
}
finally {
resolve();
}
});
} else {
resolve();
}
});
} */
/* code from JoveYu */
function BarkNotify(text, desp, params = {}) {
return new Promise((resolve) => {
if (BARK_PUSH) {
@ -1332,7 +1333,7 @@ function BarkNotify(text, desp, params = {}) {
title: text,
body: desp,
group: `${BARK_GROUP}`,
icon: `${BARK_ICON}`,
//icon: `${BARK_ICON}`,
sound: `${BARK_SOUND}`,
},
headers: {
@ -1368,58 +1369,82 @@ function BarkNotify(text, desp, params = {}) {
function tgBotNotify(text, desp) {
return new Promise(resolve => {
if (TG_BOT_TOKEN && TG_USER_ID) {
const options = {
url: `https://${TG_API_HOST}/bot${TG_BOT_TOKEN}/sendMessage`,
json: {
chat_id: `${TG_USER_ID}`,
text: `${text}\n\n${desp}`,
disable_web_page_preview: true
},
headers: {
'Content-Type': 'application/json',
},
timeout
}
if (TG_PROXY_HOST && TG_PROXY_PORT) {
const tunnel = require("tunnel");
const agent = {
https: tunnel.httpsOverHttp({
proxy: {
host: TG_PROXY_HOST,
port: TG_PROXY_PORT * 1,
proxyAuth: TG_PROXY_AUTH
}
})
const maxSegmentLength = 4000;
const despSegments = [];
let remainingDesp = desp;
while (remainingDesp.length > maxSegmentLength) {
let index = remainingDesp.lastIndexOf('\n', maxSegmentLength);
if (index === -1) {
index = maxSegmentLength;
}
Object.assign(options, { agent })
despSegments.push(remainingDesp.slice(0, index));
remainingDesp = remainingDesp.slice(index).trimLeft();
}
$.post(options, (err, resp, data) => {
try {
if (err) {
console.log('telegram发送通知消息失败\n')
console.log(err);
} else {
data = JSON.parse(data);
if (data.ok) {
console.log('Telegram发送通知消息成功🎉\n')
} else if (data.error_code === 400) {
console.log('请主动给bot发送一条消息并检查接收用户ID是否正确。\n')
} else if (data.error_code === 401) {
console.log('Telegram bot token 填写错误。\n')
}
if (remainingDesp) {
despSegments.push(remainingDesp);
}
const sendSegment = (index) => {
if (index < despSegments.length) {
const options = {
url: `https://${TG_API_HOST}/bot${TG_BOT_TOKEN}/sendMessage`,
json: {
chat_id: `${TG_USER_ID}`,
text: `${text}\n\n${despSegments[index]}`,
disable_web_page_preview: true
},
headers: {
'Content-Type': 'application/json',
},
timeout
};
if (TG_PROXY_HOST && TG_PROXY_PORT) {
const tunnel = require("tunnel");
const agent = {
https: tunnel.httpsOverHttp({
proxy: {
host: TG_PROXY_HOST,
port: TG_PROXY_PORT * 1,
proxyAuth: TG_PROXY_AUTH
}
})
};
Object.assign(options, { agent });
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
$.post(options, (err, resp, data) => {
if (err) {
console.log('telegram发送通知消息失败\n');
console.log(err);
} else {
data = JSON.parse(data);
if (data.ok) {
console.log('Telegram发送通知消息成功🎉\n');
} else if (data.error_code === 400) {
console.log('请主动给bot发送一条消息并检查接收用户ID是否正确。\n');
} else if (data.error_code === 401) {
console.log('Telegram bot token 填写错误。\n');
}
}
// 继续发送下一段消息
sendSegment(index + 1);
});
} else {
// 所有消息发送完成后 resolve
resolve();
}
})
};
// 开始发送第一段消息
sendSegment(0);
} else {
resolve()
resolve();
}
})
});
}
function ddBotNotify(text, desp) {
return new Promise((resolve) => {
const options = {
@ -1531,15 +1556,57 @@ function qywxBotNotify(text, desp) {
});
}
function fsBotNotify(text, desp) {
return new Promise((resolve) => {
const options = {
url: `https://open.feishu.cn/open-apis/bot/v2/hook/${FS_KEY}`,
json: {
msg_type: 'text',
content: {
text: ` ${text}\n\n${desp}`,
},
},
headers: {
'Content-Type': 'application/json',
},
timeout,
};
if (FS_KEY) {
$.post(options, (err, resp, data) => {
try {
if (err) {
console.log('飞书发送通知消息失败!!\n');
console.log(err);
} else {
data = JSON.parse(data);
if (data.errcode === 0) {
console.log('飞书发送通知消息成功🎉。\n');
} else {
console.log(`${data.errmsg}\n`);
}
}
} catch (e) {
$.logErr(e, resp);
}
finally {
resolve(data);
}
});
} else {
resolve();
}
});
}
function buildLastDesp(desp, author = '') {
author = process.env.NOTIFY_AUTHOR || author;
if (process.env.NOTIFY_AUTHOR_BLANK || !author) {
return desp.trim();
} else {
if (!author.match(/本通知 By/)) {
author = `\n\n本通知 By ${author}`
author = `\n\n${author}`
}
return desp.trim() + author + "\n通知时间: " + GetDateTime(new Date());
return desp.trim() + author + "\n现在时刻: " + GetDateTime(new Date());
}
}
@ -1772,7 +1839,13 @@ function wxpusherNotifyByOne(text, desp, strsummary = "") {
return new Promise((resolve) => {
if (WP_APP_TOKEN_ONE) {
var WPURL = "";
if (strsummary && strsummary.length > 96) {
if (strsummary) {
strsummary = text + "\n" + strsummary;
} else {
strsummary = text + "\n" + desp;
}
if (strsummary.length > 96) {
strsummary = strsummary.substring(0, 95) + "...";
}
let uids = [];
@ -1913,6 +1986,50 @@ function wxpusherNotify(text, desp) {
});
}
function PushDeerNotify(text, desp) {
return new Promise((resolve) => {
if (PUSHDEER_KEY) {
desp = encodeURI(desp);
desp = desp.replace(/%0A/g, '%0A%0A');
const options = {
url: `https://api2.pushdeer.com/message/push`,
body: `pushkey=${PUSHDEER_KEY}&text=${text}&desp=${desp}&type="markdown"`,
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
timeout: 5000,
};
$.post(options, (err, resp, data) => {
try {
if (err) {
console.log('发送通知调用API失败\n');
console.log(err);
} else {
data = JSON.parse(data);
// 通过返回的result的长度来判断是否成功
if (
data.content.result.length !== undefined &&
data.content.result.length > 0
) {
console.log('PushDeer发送通知消息成功🎉\n');
} else {
console.log(
`PushDeer发送通知消息异常\n${JSON.stringify(data)}`,
);
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
});
} else {
resolve();
}
});
}
function GetDateTime(date) {
var timeString = "";
@ -2001,7 +2118,7 @@ function GetnickName2() {
"Connection": "keep-alive",
"Cookie": cookie,
"Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2",
"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")
"User-Agent": $.UA
}
};
$.post(options, (err, resp, data) => {
@ -2031,7 +2148,202 @@ function GetnickName2() {
});
});
}
const got = require('got');
require('dotenv').config();
let exists = fs.existsSync('/ql/data/config/auth.json');
let authFile="";
if (exists)
authFile="/ql/data/config/auth.json"
else
authFile="/ql/config/auth.json"
const api = got.extend({
prefixUrl: 'http://127.0.0.1:5600',
retry: { limit: 0 },
});
async function getToken() {
const authConfig = JSON.parse(fs.readFileSync(authFile));
return authConfig.token;
}
async function getEnvs(){
const token = await getToken();
const body = await api({
url: 'api/envs',
searchParams: {
searchValue: 'JD_COOKIE',
t: Date.now(),
},
headers: {
Accept: 'application/json',
authorization: `Bearer ${token}`,
},
}).json();
return body.data;
};
async function getEnvsCount(){
const data = await getEnvs();
return data.length;
};
async function addEnv(cookie, remarks){
const token = await getToken();
const body = await api({
method: 'post',
url: 'api/envs',
params: { t: Date.now() },
json: [{
name: 'JD_COOKIE',
value: cookie,
remarks,
}],
headers: {
Accept: 'application/json',
authorization: `Bearer ${token}`,
'Content-Type': 'application/json;charset=UTF-8',
},
}).json();
return body;
}
async function updateEnv(cookie, eid, remarks){
const token = await getToken();
const body = await api({
method: 'put',
url: 'api/envs',
params: { t: Date.now() },
json: {
name: 'JD_COOKIE',
value: cookie,
_id: eid,
remarks,
},
headers: {
Accept: 'application/json',
authorization: `Bearer ${token}`,
'Content-Type': 'application/json;charset=UTF-8',
},
}).json();
return body;
};
async function updateEnv11(cookie, eid, remarks){
const token = await getToken();
const body = await api({
method: 'put',
url: 'api/envs',
params: { t: Date.now() },
json: {
name: 'JD_COOKIE',
value: cookie,
id: eid,
remarks,
},
headers: {
Accept: 'application/json',
authorization: `Bearer ${token}`,
'Content-Type': 'application/json;charset=UTF-8',
},
}).json();
return body;
};
async function DisableCk(eid){
const token = await getToken();
const body = await api({
method: 'put',
url: 'api/envs/disable',
params: { t: Date.now() },
body: JSON.stringify([eid]),
headers: {
Accept: 'application/json',
authorization: `Bearer ${token}`,
'Content-Type': 'application/json;charset=UTF-8',
},
}).json();
return body;
};
async function EnableCk(eid){
const token = await getToken();
const body = await api({
method: 'put',
url: 'api/envs/enable',
params: { t: Date.now() },
body: JSON.stringify([eid]),
headers: {
Accept: 'application/json',
authorization: `Bearer ${token}`,
'Content-Type': 'application/json;charset=UTF-8',
},
}).json();
return body;
};
async function getstatus(eid){
const envs = await getEnvs();
var tempid = 0;
for (let i = 0; i < envs.length; i++) {
tempid = 0;
if (envs[i]._id) {
tempid = envs[i]._id;
}
if (envs[i].id) {
tempid = envs[i].id;
}
if (tempid == eid) {
return envs[i].status;
}
}
return 99;
};
async function getEnvById(eid){
const envs = await getEnvs();
var tempid = 0;
for (let i = 0; i < envs.length; i++) {
tempid = 0;
if (envs[i]._id) {
tempid = envs[i]._id;
}
if (envs[i].id) {
tempid = envs[i].id;
}
if (tempid == eid) {
return envs[i].value;
}
}
return "";
};
async function getEnvByPtPin(Ptpin){
const envs = await getEnvs();
for (let i = 0; i < envs.length; i++) {
var tempptpin = decodeURIComponent(envs[i].value.match(/pt_pin=([^; ]+)(?=;?)/) && envs[i].value.match(/pt_pin=([^; ]+)(?=;?)/)[1]);
if(tempptpin==Ptpin){
return envs[i];
}
}
return "";
};
async function delEnv(eid){
const token = await getToken();
const body = await api({
method: 'delete',
url: 'api/envs',
params: { t: Date.now() },
body: JSON.stringify([eid]),
headers: {
Accept: 'application/json',
authorization: `Bearer ${token}`,
'Content-Type': 'application/json;charset=UTF-8',
},
}).json();
return body;
};
module.exports = {
sendNotify,
sendNotifybyWxPucher,