Miao-Yunzai/lib/config/init.js

95 lines
2.1 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.

import createQQ from "./qq.js"
import setLog from "./log.js"
import redisInit from "./redis.js"
import { checkRun } from "./check.js"
import fs from "node:fs"
import yaml from "yaml"
/** 设置标题 */
process.title = "Miao-Yunzai"
async function UpdateTitle() {
// 添加一些多余的标题内容
let title = "Miao-Yunzai"
let qq = await fs.promises.readFile("./config/config/qq.yaml", "UTF-8").then(yaml.parse).catch(() => null)
if (qq) {
title += `@${qq.qq || ""}`
switch (qq.platform) {
case 1:
title += " 安卓手机"
break
case 2:
title += " aPad"
break
case 3:
title += " 安卓手表"
break
case 4:
title += " MacOS"
break
case 5:
title += " iPad"
break
case 6:
title += " Tim"
break
default:
}
}
/** 设置标题 */
process.title = title
}
/** 设置时区 */
process.env.TZ = "Asia/Shanghai"
process.on("SIGHUP", () => process.exit())
/** 捕获未处理的错误 */
process.on("uncaughtException", error => {
if (typeof logger == "undefined") console.log(error)
else logger.error(error)
})
/** 捕获未处理的Promise错误 */
process.on("unhandledRejection", (error, promise) => {
if (typeof logger == "undefined") console.log(error)
else logger.error(error)
})
/** 退出事件 */
process.on("exit", async code => {
if (typeof redis != "undefined" && typeof test == "undefined")
await redis.save()
if (typeof logger == "undefined")
console.log("Miao-Yunzai 已停止运行")
else
logger.mark(logger.magenta("Miao-Yunzai 已停止运行"))
})
await checkInit()
/** 初始化事件 */
async function checkInit() {
/** 检查node_modules */
if (!fs.existsSync("./node_modules") || !fs.existsSync("./node_modules/icqq")) {
console.log("请先运行命令pnpm install -P 安装依赖")
process.exit()
}
/** 检查qq.yaml */
await createQQ()
/** 日志设置 */
setLog()
logger.mark("Miao-Yunzai 启动中...")
await redisInit()
await checkRun()
//** 更新标题 */
await UpdateTitle()
}