细节优化

This commit is contained in:
🌌 2023-09-04 13:46:08 +08:00
parent 625d7ec88e
commit 9fc7a1dd4a
9 changed files with 66 additions and 33 deletions

View File

@ -1,12 +1,39 @@
const os = require("os")
const { existsSync } = require("fs")
const { existsSync, realpathSync } = require("fs")
const { execSync } = require("child_process")
const arch = os.arch()
let skipDownload = false
let executablePath
if (process.platform == "win32" && existsSync("C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe")) {
skipDownload = true
executablePath = "C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"
} else if (process.platform == "linux" && existsSync("/usr/bin/chromium")) {
skipDownload = true
executablePath = "/usr/bin/chromium"
if (process.platform == "linux" || process.platform == "android")
for (const item of [
"chromium",
"chromium-browser",
"chrome",
"chrome-browser",
]) try {
const chromiumPath = execSync(`command -v ${item}`).toString().trim()
if (chromiumPath && existsSync(chromiumPath)) {
executablePath = realpathSync(chromiumPath)
break
}
} catch (err) {}
if (!executablePath) for (const item of [
"C:/Program Files/Google/Chrome/Application/chrome.exe",
"C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe",
"/usr/bin/chromium",
"/usr/bin/chromium-browser",
"/snap/bin/chromium",
]) if (existsSync(item)) {
executablePath = item
break
}
if (executablePath || arch == "arm64" || arch == "aarch64") {
(typeof logger == "object" ? logger : console).info(`[Chromium] ${executablePath}`)
skipDownload = true
}
module.exports = { skipDownload, executablePath }

View File

@ -1,3 +1,10 @@
# 3.1.1
* 支持协议端米游社大别野Bot
* 初步适配原神4.0版本,增加对应资源及信息展示,感谢**Ca(HCO₃)₂**、**@touchscale**、**@teriri7**
* 升级`#探索`内容,支持更多内容展示 **@bangbanbab**
* 增加 `#全部抽卡记录` **@story-x**
# 3.1.0
* 支持协议端GSUIDCore、微信

View File

@ -26,7 +26,7 @@ async function execSync (cmd) {
}
function pm2Cfg () {
let cfg = fs.readFileSync('./config/pm2/pm2.json')
let cfg = fs.readFileSync('config/pm2/pm2.json')
cfg = JSON.parse(cfg)
return cfg
}

View File

@ -15,14 +15,14 @@ class Cfg {
/** 初始化配置 */
initCfg () {
let path = "./config/config/"
let pathDef = "./config/default_config/"
let path = "config/config/"
let pathDef = "config/default_config/"
const files = fs.readdirSync(pathDef).filter(file => file.endsWith(".yaml"))
for (let file of files)
if (!fs.existsSync(`${path}${file}`))
fs.copyFileSync(`${pathDef}${file}`, `${path}${file}`)
if (!fs.existsSync("./data")) fs.mkdirSync("./data")
if (!fs.existsSync("./resources")) fs.mkdirSync("./resources")
if (!fs.existsSync("data")) fs.mkdirSync("data")
if (!fs.existsSync("resources")) fs.mkdirSync("resources")
}
/** Bot配置 */
@ -89,7 +89,7 @@ class Cfg {
get package () {
if (this._package) return this._package
this._package = JSON.parse(fs.readFileSync("./package.json", "utf8"))
this._package = JSON.parse(fs.readFileSync("package.json", "utf8"))
return this._package
}
@ -132,7 +132,7 @@ class Cfg {
* @param name 名称
*/
getYaml (type, name) {
let file = `./config/${type}/${name}.yaml`
let file = `config/${type}/${name}.yaml`
let key = `${type}.${name}`
if (this.config[key]) return this.config[key]

View File

@ -16,13 +16,13 @@ export default async function redisInit() {
let client = createClient({ url: redisUrl })
try {
logger.mark(`正在连接 ${logger.blue(redisUrl)}`)
logger.info(`正在连接 ${logger.blue(redisUrl)}`)
await client.connect()
} catch (err) {
logger.error(`Redis 错误:${logger.red(err)}`)
const cmd = "redis-server --save 900 1 --save 300 10 --daemonize yes" + await aarch64()
logger.mark("正在启动 Redis...")
logger.info("正在启动 Redis...")
await execSync(cmd)
await common.sleep(1000)
@ -45,7 +45,7 @@ export default async function redisInit() {
/** 全局变量 redis */
global.redis = client
logger.mark("Redis 连接成功")
logger.info("Redis 连接成功")
return client
}

View File

@ -25,7 +25,7 @@ async function registerRendererBackends () {
logger.warn('渲染后端 ' + (renderer.id || subFolder.name) + ' 不可用')
}
rendererBackends[renderer.id] = renderer
logger.mark('[渲染后端加载]: 导入 ' + renderer.id)
logger.info(`加载渲染后端 ${renderer.id}`)
}
}

View File

@ -127,7 +127,7 @@ export class update extends plugin {
}
async getTime(plugin = '') {
let cm = 'git log -1 --pretty=format:"%cd" --date=format:"%F %T"'
let cm = 'git log -1 --pretty=%cd --date=format:"%F %T"'
if (plugin) cm = `cd "plugins/${plugin}" && ${cm}`
let time = ''
@ -191,7 +191,7 @@ export class update extends plugin {
}
async getLog(plugin = '') {
let cm = 'git log -100 --pretty=format:"%h||[%cd] %s" --date=format:"%F %T"'
let cm = 'git log -100 --pretty="%h||[%cd] %s" --date=format:"%F %T"'
if (plugin) cm = `cd "plugins/${plugin}" && ${cm}`
let logAll

View File

@ -65,7 +65,7 @@ export default class PuppeteerRenderer {
if (this.lock) return false
this.lock = true
logger.mark('puppeteer Chromium 启动中...')
logger.info('puppeteer Chromium 启动中...')
let connectFlag = false
try {
@ -77,7 +77,7 @@ export default class PuppeteerRenderer {
// 是否有browser实例
const browserUrl = (await redis.get(this.browserMacKey)) || this.config.wsEndpoint
if (browserUrl) {
logger.mark(`puppeteer Chromium from ${browserUrl}`)
logger.info(`puppeteer Chromium from ${browserUrl}`)
const browserWSEndpoint = await puppeteer.connect({ browserWSEndpoint: browserUrl }).catch((err) => {
logger.error('puppeteer Chromium 缓存的实例已关闭')
redis.del(this.browserMacKey)
@ -91,7 +91,7 @@ export default class PuppeteerRenderer {
}
}
} catch (e) {
logger.mark('puppeteer Chromium 不存在已有实例')
logger.info('puppeteer Chromium 不存在已有实例')
}
if (!this.browser || !connectFlag) {
@ -119,7 +119,7 @@ export default class PuppeteerRenderer {
return false
}
if (connectFlag) {
logger.mark('puppeteer Chromium 已连接启动的实例')
logger.info('puppeteer Chromium 已连接启动的实例')
} else {
console.log('chromium', this.browser.wsEndpoint())
if (process.env.pm_id && this.browserMacKey) {
@ -127,7 +127,7 @@ export default class PuppeteerRenderer {
const expireTime = 60 * 60 * 24 * 30
await redis.set(this.browserMacKey, this.browser.wsEndpoint(), { EX: expireTime })
}
logger.mark('puppeteer Chromium 启动成功')
logger.info('puppeteer Chromium 启动成功')
}
/** 监听Chromium实例是否断开 */
@ -226,7 +226,7 @@ export default class PuppeteerRenderer {
buff = await body.screenshot(randData)
/** 计算图片大小 */
const kb = (buff.length / 1024).toFixed(2) + 'kb'
logger.mark(`[图片生成][${name}][${this.renderNum}次] ${kb} ${logger.green(`${Date.now() - start}ms`)}`)
logger.info(`[图片生成][${name}][${this.renderNum}次] ${kb} ${logger.green(`${Date.now() - start}ms`)}`)
this.renderNum++
ret.push(buff)
} else {
@ -257,11 +257,11 @@ export default class PuppeteerRenderer {
/** 计算图片大小 */
const kb = (buff.length / 1024).toFixed(2) + 'kb'
logger.mark(`[图片生成][${name}][${i}/${num}] ${kb}`)
logger.info(`[图片生成][${name}][${i}/${num}] ${kb}`)
ret.push(buff)
}
if (num > 1) {
logger.mark(`[图片生成][${name}] 处理完成`)
logger.info(`[图片生成][${name}] 处理完成`)
}
}
page.close().catch((err) => logger.error(err))
@ -328,7 +328,7 @@ export default class PuppeteerRenderer {
const watcher = chokidar.watch(tplFile)
watcher.on('change', path => {
delete this.html[tplFile]
logger.mark(`[修改html模板] ${tplFile}`)
logger.info(`[修改html模板] ${tplFile}`)
})
this.watcher[tplFile] = watcher
@ -344,10 +344,9 @@ export default class PuppeteerRenderer {
await this.browser.close().catch((err) => logger.error(err))
}
this.browser = false
logger.mark('puppeteer 关闭重启...')
logger.info('puppeteer 关闭重启...')
}, 100)
}
}
}
}