2023-03-04 14:30:13 +08:00
|
|
|
|
import createQQ from './qq.js'
|
|
|
|
|
import setLog from './log.js'
|
|
|
|
|
import redisInit from './redis.js'
|
|
|
|
|
import { checkRun } from './check.js'
|
|
|
|
|
import fs from 'fs'
|
2023-03-08 01:54:36 +08:00
|
|
|
|
import yaml from 'yaml'
|
|
|
|
|
|
|
|
|
|
let path = './config/config/qq.yaml'
|
|
|
|
|
|
|
|
|
|
// 异步函数来读取 yaml 文件
|
|
|
|
|
async function getQQ () {
|
|
|
|
|
function getQQPromise () {
|
|
|
|
|
// eslint-disable-next-line no-async-promise-executor
|
|
|
|
|
return new Promise(async (resolve, reject) => {
|
|
|
|
|
try {
|
|
|
|
|
const file = await fs.promises.readFile(path, 'utf8')
|
|
|
|
|
const config = yaml.parse(file)
|
|
|
|
|
resolve(config)
|
|
|
|
|
} catch (err) {
|
|
|
|
|
console.error(err)
|
|
|
|
|
reject(err)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return getQQPromise().then((config) => {
|
|
|
|
|
return config
|
|
|
|
|
}).catch((err) => {
|
|
|
|
|
console.log(err)
|
|
|
|
|
})
|
|
|
|
|
}
|
2023-03-04 14:30:13 +08:00
|
|
|
|
|
|
|
|
|
/** 设置标题 */
|
2023-03-08 01:54:36 +08:00
|
|
|
|
process.title = `Miao-Yunzai ${(await getQQ()).qq === null ? '首次启动' : (await getQQ()).qq} ${(await getQQ()).platform === 1 ? '安卓手机' : (await getQQ()).platform === 2 ? 'aPad' : (await getQQ()).platform === 3 ? '安卓手表' : (await getQQ()).platform === 4 ? 'MacOS' : (await getQQ()).platform === 5 ? 'iPad' : 'Null'}`
|
2023-03-04 14:30:13 +08:00
|
|
|
|
/** 设置时区 */
|
|
|
|
|
process.env.TZ = 'Asia/Shanghai'
|
|
|
|
|
|
|
|
|
|
/** 捕获未处理的Promise错误 */
|
|
|
|
|
process.on('unhandledRejection', (error, promise) => {
|
|
|
|
|
let err = error
|
|
|
|
|
if (logger) {
|
|
|
|
|
logger.error(err)
|
|
|
|
|
} else {
|
|
|
|
|
console.log(err)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
/** 退出事件 */
|
|
|
|
|
process.on('exit', async (code) => {
|
|
|
|
|
if (typeof redis != 'undefined' && typeof test == 'undefined') {
|
|
|
|
|
await redis.save()
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
await checkInit()
|
|
|
|
|
|
|
|
|
|
/** 初始化事件 */
|
|
|
|
|
async function checkInit () {
|
|
|
|
|
/** 检查node_modules */
|
|
|
|
|
if (!fs.existsSync('./node_modules') || !fs.existsSync('./node_modules/icqq')) {
|
2023-03-06 18:07:30 +08:00
|
|
|
|
console.log('请先运行命令:pnpm install 安装依赖')
|
2023-03-04 14:30:13 +08:00
|
|
|
|
process.exit()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** 检查qq.yaml */
|
|
|
|
|
await createQQ()
|
|
|
|
|
|
|
|
|
|
/** 日志设置 */
|
|
|
|
|
setLog()
|
|
|
|
|
|
2023-03-06 10:00:25 +08:00
|
|
|
|
logger.mark('Miao-Yunzai 启动中...')
|
2023-03-04 14:30:13 +08:00
|
|
|
|
|
|
|
|
|
await redisInit()
|
|
|
|
|
|
|
|
|
|
checkRun()
|
|
|
|
|
}
|