From 41521f1d0817611a6005764ba1d8b4a4a09f8ad7 Mon Sep 17 00:00:00 2001 From: whyour Date: Sat, 13 May 2023 01:10:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20token=20=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=E8=B7=AF=E5=BE=84=EF=BC=8C=E5=AE=B9=E5=99=A8?= =?UTF-8?q?=E5=90=AF=E5=8A=A8=20bot?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- back/api/config.ts | 7 ++++--- back/api/script.ts | 6 +++--- back/data/index.ts | 3 ++- back/loaders/initTask.ts | 6 ++++-- docker/docker-entrypoint.sh | 8 +++++++- shell/api.sh | 2 +- 6 files changed, 21 insertions(+), 11 deletions(-) diff --git a/back/api/config.ts b/back/api/config.ts index ea0b5924..0c33ed89 100644 --- a/back/api/config.ts +++ b/back/api/config.ts @@ -5,6 +5,7 @@ import { Logger } from 'winston'; import config from '../config'; import * as fs from 'fs'; import { celebrate, Joi } from 'celebrate'; +import { join } from 'path'; const route = Router(); export default (app: Router) => { @@ -41,11 +42,11 @@ export default (app: Router) => { } if (req.params.file.includes('sample')) { content = getFileContentByName( - `${config.samplePath}${req.params.file}`, + join(config.samplePath, req.params.file), ); } else { content = getFileContentByName( - `${config.configPath}${req.params.file}`, + join(config.samplePath, req.params.file), ); } res.send({ code: 200, data: content }); @@ -70,7 +71,7 @@ export default (app: Router) => { if (config.blackFileList.includes(name)) { res.send({ code: 403, message: '文件无法访问' }); } - const path = `${config.configPath}${name}`; + const path = join(config.configPath, name); fs.writeFileSync(path, content); res.send({ code: 200, message: '保存成功' }); } catch (e) { diff --git a/back/api/script.ts b/back/api/script.ts index 9dec7f93..7ec05651 100644 --- a/back/api/script.ts +++ b/back/api/script.ts @@ -94,7 +94,7 @@ export default (app: Router) => { path += '/'; } if (!path.startsWith('/')) { - path = `${config.scriptPath}${path}`; + path = join(config.scriptPath, path); } if (config.writePathList.every((x) => !path.startsWith(x))) { return res.send({ @@ -124,7 +124,7 @@ export default (app: Router) => { if (fs.existsSync(originFilePath)) { fs.copyFileSync( originFilePath, - `${config.bakPath}${originFilename.replace(/\//g, '')}`, + join(config.bakPath, originFilename.replace(/\//g, '')), ); if (filename !== originFilename) { fs.unlinkSync(originFilePath); @@ -207,7 +207,7 @@ export default (app: Router) => { let { filename } = req.body as { filename: string; }; - const filePath = `${config.scriptPath}${filename}`; + const filePath = join(config.scriptPath, filename); // const stats = fs.statSync(filePath); // res.set({ // 'Content-Type': 'application/octet-stream', //告诉浏览器这是一个二进制文件 diff --git a/back/data/index.ts b/back/data/index.ts index 97c56023..71885123 100644 --- a/back/data/index.ts +++ b/back/data/index.ts @@ -1,9 +1,10 @@ import { Sequelize, Transaction } from 'sequelize'; import config from '../config/index'; +import { join } from 'path'; export const sequelize = new Sequelize({ dialect: 'sqlite', - storage: `${config.dbPath}database.sqlite`, + storage: join(config.dbPath, 'database.sqlite'), logging: false, retry: { max: 10, diff --git a/back/loaders/initTask.ts b/back/loaders/initTask.ts index 86e78833..b219dbf9 100644 --- a/back/loaders/initTask.ts +++ b/back/loaders/initTask.ts @@ -4,6 +4,7 @@ import ScheduleService from '../services/schedule'; import SubscriptionService from '../services/subscription'; import config from '../config'; import { fileExist } from '../config/util'; +import { join } from 'path'; export default async () => { const systemService = Container.get(SystemService); @@ -11,8 +12,9 @@ export default async () => { const subscriptionService = Container.get(SubscriptionService); // 生成内置token - let tokenCommand = `tsx ${config.rootPath}/back/token.ts`; - const tokenFile = `${config.rootPath}static/build/token.js`; + let tokenCommand = `tsx ${join(config.rootPath, 'back/token.ts')}`; + const tokenFile = join(config.rootPath, 'static/build/token.js'); + if (await fileExist(tokenFile)) { tokenCommand = `node ${tokenFile}`; } diff --git a/docker/docker-entrypoint.sh b/docker/docker-entrypoint.sh index 71b5eee2..b3ab2c0a 100755 --- a/docker/docker-entrypoint.sh +++ b/docker/docker-entrypoint.sh @@ -35,8 +35,14 @@ echo -e "nginx启动成功...\n" echo -e "======================4. 启动pm2服务========================\n" reload_pm2 +if [[ $AutoStartBot == true ]]; then + echo -e "======================5. 启动bot========================\n" + nohup ql -l bot >$dir_log/bot.log 2>&1 & + echo -e "bot后台启动中...\n" +fi + if [[ $EnableExtraShell == true ]]; then - echo -e "====================5. 执行自定义脚本========================\n" + echo -e "====================6. 执行自定义脚本========================\n" nohup ql -l extra >$dir_log/extra.log 2>&1 & echo -e "自定义脚本后台执行中...\n" fi diff --git a/shell/api.sh b/shell/api.sh index 99d1da9f..2f218c25 100755 --- a/shell/api.sh +++ b/shell/api.sh @@ -2,7 +2,7 @@ create_token() { local token_command="tsx ${dir_root}/back/token.ts" - local token_file="${dir_root}static/build/token.js" + local token_file="${dir_root}/static/build/token.js" if [[ -f $token_file ]]; then token_command="node ${token_file}" fi