GenshinCloudGameHelper/config.js

135 lines
4.6 KiB
JavaScript
Raw Normal View History

2022-07-13 13:15:34 +08:00
const { exit } = require("process")
const fs = require("fs")
const request = require("sync-request")
const nodemailer = require('nodemailer')
exports.NotificationURL = 'https://api-cloudgame.mihoyo.com/hk4e_cg_cn/gamer/api/listNotifications?status=NotificationStatusUnread&type=NotificationTypePopup&is_sort=true'
exports.WalletURL = 'https://api-cloudgame.mihoyo.com/hk4e_cg_cn/wallet/wallet/get'
exports.AnnouncementURL = 'https://api-cloudgame.mihoyo.com/hk4e_cg_cn/gamer/api/getAnnouncementInfo'
exports.AppVersionURL = 'https://api-cloudgame-static.mihoyo.com/hk4e_cg_cn/gamer/api/getFunctionShieldNew?client_type=1'
exports.Notification = function(header) {
let tmp = JSON.parse(request("GET",exports.NotificationURL,{
headers:header
}).body.toString());
tmp.StringVersion = JSON.stringify(tmp);
return tmp;
}
exports.Wallet = function(header) {
let tmp = JSON.parse(request("GET",exports.WalletURL,{
headers:header
}).body.toString());
tmp.StringVersion = JSON.stringify(tmp);
return tmp;
}
exports.Announcement = function(header) {
let tmp = JSON.parse(request("GET",exports.AnnouncementURL,{
headers:header
}).body.toString());
tmp.StringVersion = JSON.stringify(tmp);
return tmp;
}
exports.AppVersion = function() {
let tmp = JSON.parse(request("GET",exports.AppVersionURL).body.toString());
tmp.StringVersion = JSON.stringify(tmp);
return tmp;
}
var configKeys = [
"token",
"client_type",
"device_name",
"device_model",
"sys_version",
"channel"
]
exports.getGlobalConfig = function() {
try {
var globalConfig = fs.readFileSync("global.json")
} catch(e) {
if(e == "Error: ENOENT: no such file or directory, scandir 'global.json'") {
log.error(`读取配置失败!找不到全局配置文件`)
} else {
log.error(`读取配置失败!错误信息:${e}`);
}
exit()
}
return JSON.parse(globalConfig);
}
exports.getConfigs = function(){
// var configsList;
try {
var configsList = fs.readdirSync("configs")
} catch(e) {
if(e == "Error: ENOENT: no such file or directory, scandir 'configs'") {
log.error(`读取配置失败!找不到configs文件夹`)
} else {
log.error(`读取配置失败!错误信息:${e}`);
}
exit()
}
log.info(`检测到${configsList.length}个配置文件:`)
configsList.forEach(file => {
log.info(`${file}`)
})
var configs = {}
configsList.forEach(file => {
configs[file] = JSON.parse(fs.readFileSync(`configs/${file}`))
})
return configs
}
exports.checkConfigs = function(configs){
for(file in configs) {
var configThis = configs[file];
var isNoProbem = true;
for(key in configKeys) {
if(configThis[configKeys[key]] == "" || configThis[configKeys[key]] == undefined || configThis[configKeys[key]] == null || configThis[configKeys[key]] == NaN) {
log.error(`配置文件 ${file} 异常:`);
log.error(` —— ${configKeys[key]}字段缺失`);
// isNoProbem = false;
2022-07-13 13:15:34 +08:00
}
}
// if(!isNoProbem) {
// exit();
// }
2022-07-13 13:15:34 +08:00
}
}
// var appversion = exports.AppVersion();
exports.makeHeader = function(data,appversion){
return {
'x-rpc-combo_token': data.token,
'x-rpc-client_type': data.client_type,
'x-rpc-app_version': appversion,
'x-rpc-sys_version': data.sys_version,
'x-rpc-channel': data.channel,
'x-rpc-device_id': data.device_id,
'x-rpc-device_name': data.device_name,
'x-rpc-device_model': data.device_model,
'x-rpc-app_id': 1953439974,
'Referer': 'https://app.mihoyo.com',
'Host': 'api-cloudgame.mihoyo.com',
'Connection': 'Keep-Alive',
'Accept-Encoding': 'gzip',
'User-Agent': 'okhttp/4.9.0'
}
}
exports.SendLog = function(transporter,mailfrom,mailto,successNum,totalNum,content) {
transporter.sendMail({
from: mailfrom+'" Genshin CloudPlay Helper"', //邮件来源
to: mailto, //邮件发送到哪里,多个邮箱使用逗号隔开
subject: `今日已签到${successNum}/${totalNum}名用户`, // 邮件主题
text: '☺️😍😎', // 存文本类型的邮件正文
html: `${content}` // html类型的邮件正文
}, (error, info) => {
if (error) {
return console.log(error);
}
log.info("日志已丢出!")
});
}