diff --git a/.puppeteerrc.cjs b/.puppeteerrc.cjs index cff2701..2f3a7b5 100644 --- a/.puppeteerrc.cjs +++ b/.puppeteerrc.cjs @@ -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 } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 940b0ff..e215f2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# 3.1.1 + +* 支持协议端:米游社大别野Bot +* 初步适配原神4.0版本,增加对应资源及信息展示,感谢**Ca(HCO₃)₂**、**@touchscale**、**@teriri7** +* 升级`#探索`内容,支持更多内容展示 **@bangbanbab** +* 增加 `#全部抽卡记录` **@story-x** + # 3.1.0 * 支持协议端:GSUIDCore、微信 diff --git a/lib/config/check.js b/lib/config/check.js index 49931d6..7141169 100644 --- a/lib/config/check.js +++ b/lib/config/check.js @@ -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 } diff --git a/lib/config/config.js b/lib/config/config.js index 7b996cd..d3fcf31 100644 --- a/lib/config/config.js +++ b/lib/config/config.js @@ -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] diff --git a/lib/config/redis.js b/lib/config/redis.js index 4fa8524..e4b84c0 100644 --- a/lib/config/redis.js +++ b/lib/config/redis.js @@ -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 } diff --git a/lib/renderer/Renderer.js b/lib/renderer/Renderer.js index cc50e93..4b64b00 100644 --- a/lib/renderer/Renderer.js +++ b/lib/renderer/Renderer.js @@ -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}`) } } diff --git a/plugins/other/restart.js b/plugins/other/restart.js index 4cea423..f0ef2bd 100644 --- a/plugins/other/restart.js +++ b/plugins/other/restart.js @@ -119,4 +119,4 @@ export class Restart extends plugin { } }) } -} +} \ No newline at end of file diff --git a/plugins/other/update.js b/plugins/other/update.js index 0c92dee..ce65b26 100644 --- a/plugins/other/update.js +++ b/plugins/other/update.js @@ -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 diff --git a/renderers/puppeteer/lib/puppeteer.js b/renderers/puppeteer/lib/puppeteer.js index 418681c..9d2aa56 100644 --- a/renderers/puppeteer/lib/puppeteer.js +++ b/renderers/puppeteer/lib/puppeteer.js @@ -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) } } } -} - +} \ No newline at end of file