Files

192 lines
7.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const {
checkConfigs,
hk4e_getConfigs,
hk4e_makeHeader,
hk4e_ListNotification,
hk4e_AckNotification,
hk4e_Wallet,
hk4e_AppVersion,
nap_getConfigs,
nap_makeHeader,
nap_ListNotification,
nap_AckNotification,
nap_Wallet,
nap_AppVersion,
SendLog,
getGlobalConfig,
SendResult,
} = require("./config");
const { log, addLogContent, getLogs, sleep } = require("./util");
const nodemailer = require("nodemailer");
(async () => {
log.info("开始获取全局配置");
var globalConfig = getGlobalConfig();
log.info("获取成功");
log.info("组装邮件发射器");
var transporter = nodemailer.createTransport({
host: globalConfig.mailConfig.smtpServer,
port: globalConfig.mailConfig.smtpPort,
secure: globalConfig.mailConfig.smtpSecure,
auth: {
user: globalConfig.mailConfig.user,
pass: globalConfig.mailConfig.pass,
},
});
var minDelay = globalConfig.minDelay;
var maxDelay = globalConfig.maxDelay;
var hk4e_configs = hk4e_getConfigs();
var nap_configs = nap_getConfigs();
log.info(`正在检测原神配置有效性`);
checkConfigs(hk4e_configs);
log.info("检测完毕!");
log.info(`正在检测绝区零配置有效性`);
checkConfigs(nap_configs);
log.info("检测完毕!");
log.info("正在获取版本号");
var hk4e_appversion = await hk4e_AppVersion();
var nap_appversion = await nap_AppVersion();
hk4e_appversion = hk4e_appversion.data.package_version;
nap_appversion = nap_appversion.data.package_version;
log.info(`获取成功!当前版本号:原神${hk4e_appversion},绝区零${nap_appversion}`);
var successNum = 0, totalNum = 0;
for (key in hk4e_configs) {
var delay = Math.round(
Math.random() * (maxDelay - minDelay) + minDelay
);
log.info(`暂停:${delay}毫秒`);
await sleep(delay);
totalNum++;
log.info(`${key} - 正在执行配置 ${key}`);
log.info(`${key} - 尝试签到原神……`);
var hk4e_header = hk4e_makeHeader(hk4e_configs[key], hk4e_appversion);
var hk4e_WalletRespond = await hk4e_Wallet(hk4e_header);
addLogContent(
`<span style="color: orange; font-weight: bold">${key} hk4e_Wallet返回体</span> <br> <span style="color: orange">${JSON.stringify(
hk4e_WalletRespond
)}</span><br>`
);
if (hk4e_WalletRespond.data != null) {
var hk4e_NotificationRespond = await hk4e_ListNotification(hk4e_header);
addLogContent(
`<span style="color: orange; font-weight: bold">${key} hk4e_Notification返回体</span> <br> <span style="color: orange">${JSON.stringify(
hk4e_NotificationRespond
)}</span><br>`
);
successNum++;
log.info(
`${key} - 签到完毕! 原神获得时长:${hk4e_WalletRespond.data.free_time.send_freetime}分钟,总时长:${hk4e_WalletRespond.data.free_time.free_time}分钟`
);
if (hk4e_configs[key].email != null) {
SendResult(
transporter,
globalConfig.mailConfig.user,
hk4e_configs[key].email,
`签到完毕! 获得时长:${hk4e_WalletRespond.data.free_time.send_freetime}分钟,总时长:${hk4e_WalletRespond.data.free_time.free_time}分钟`,
key
);
}
let hk4e_NotificationLength = hk4e_NotificationRespond.data.list.length;
let hk4e_postHeader = hk4e_header;
Object.assign(hk4e_postHeader, {
"Content-Length": 28,
"Content-Type": "application/json; charset=UTF-8",
});
for (var i = 0; i < hk4e_NotificationLength; i++) {
hk4e_AckNotification(
hk4e_postHeader,
hk4e_NotificationRespond.data.list[i].id
);
}
} else {
log.error(`${key} - 签到失败`);
if (hk4e_configs[key].email != null) {
SendResult(
transporter,
globalConfig.mailConfig.user,
hk4e_configs[key].email,
"签到失败",
key
);
}
}
}
for (key in nap_configs) {
var delay = Math.round(
Math.random() * (maxDelay - minDelay) + minDelay
);
log.info(`暂停:${delay}毫秒`);
await sleep(delay);
totalNum++;
log.info(`${key} - 正在执行配置 ${key}`);
log.info(`${key} - 尝试签到绝区零……`);
var nap_header = nap_makeHeader(nap_configs[key], nap_appversion);
var nap_WalletRespond = await nap_Wallet(nap_header);
addLogContent(
`<span style="color: orange; font-weight: bold">${key} nap_Wallet返回体</span> <br> <span style="color: orange">${JSON.stringify(
nap_WalletRespond
)}</span><br>`
);
if (nap_WalletRespond.data != null) {
var nap_NotificationRespond = await nap_ListNotification(nap_header);
addLogContent(
`<span style="color: orange; font-weight: bold">${key} nap_Notification返回体</span> <br> <span style="color: orange">${JSON.stringify(
nap_NotificationRespond
)}</span><br>`
);
successNum++;
log.info(
`${key} - 签到完毕! 绝区零获得时长:${nap_WalletRespond.data.free_time.send_freetime}分钟,总时长:${nap_WalletRespond.data.free_time.free_time}分钟`
);
if (nap_configs[key].email != null) {
SendRnapt(
transporter,
globalConfig.mailConfig.user,
nap_configs[key].email,
`签到完毕! 获得时长:${nap_WalletRespond.data.free_time.send_freetime}分钟,总时长:${nap_WalletRespond.data.free_time.free_time}分钟`,
key
);
}
let nap_NotificationLength = nap_NotificationRespond.data.list.length;
let nap_postHeader = nap_header;
Object.assign(nap_postHeader, {
"Content-Length": 28,
"Content-Type": "application/json; charset=UTF-8",
});
for (var i = 0; i < nap_NotificationLength; i++) {
nap_AckNotification(
nap_postHeader,
nap_NotificationRespond.data.list[i].id
);
}
} else {
log.error(`${key} - 签到失败`);
if (nap_configs[key].email != null) {
SendResult(
transporter,
globalConfig.mailConfig.user,
nap_configs[key].email,
"签到失败",
key
);
}
}
}
if (globalConfig.sendMail == true) {
log.info(`暂停10秒`);
await sleep(10000);
log.info(`运行完毕!丢出日志`);
SendLog(
transporter,
globalConfig.mailConfig.user,
globalConfig.mailConfig.mailto,
successNum,
totalNum,
getLogs()
);
}
})();