From 9b71b28e467b0fa87f78cf55ab36849796fcc6b7 Mon Sep 17 00:00:00 2001 From: chaos-zhu Date: Tue, 22 Oct 2024 22:50:00 +0800 Subject: [PATCH] =?UTF-8?q?:recycle:=20=E9=87=8D=E6=9E=84=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0=E6=95=B0=E6=8D=AE=E5=BA=93-scripts=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/app/controller/scripts.js | 23 ++++---------- server/app/utils/storage.js | 52 +------------------------------- web/src/store/index.js | 2 +- web/src/views/login/index.vue | 1 + 4 files changed, 9 insertions(+), 69 deletions(-) diff --git a/server/app/controller/scripts.js b/server/app/controller/scripts.js index c35619c..7993df3 100644 --- a/server/app/controller/scripts.js +++ b/server/app/controller/scripts.js @@ -1,13 +1,14 @@ const localShellJson = require('../config/shell.json') -const { readScriptList, writeScriptList } = require('../utils/storage') const { randomStr } = require('../utils/tools') +const { ScriptsDB } = require('../utils/db-class') +const scriptsDB = new ScriptsDB().getInstance() let localShell = JSON.parse(JSON.stringify(localShellJson)).map((item) => { return { ...item, id: randomStr(10), index: '--', description: item.description + '|内置脚本' } }) async function getScriptList({ res }) { - let data = await readScriptList() + let data = await scriptsDB.findAsync({}) data = data.map(item => { return { ...item, id: item._id } }) @@ -24,10 +25,8 @@ const addScript = async ({ res, request }) => { let { body: { name, description, command, index } } = request if (!name || !command) return res.fail({ data: false, msg: '参数错误' }) index = Number(index) || 0 - let scriptsList = await readScriptList() let record = { name, description, command, index } - scriptsList.push(record) - await writeScriptList(scriptsList) + await scriptsDB.insertAsync(record) res.success({ data: '添加成功' }) } @@ -35,23 +34,13 @@ const updateScriptList = async ({ res, request }) => { let { params: { id } } = request let { body: { name, description, command, index } } = request if (!name || !command) return res.fail({ data: false, msg: '参数错误' }) - let scriptsList = await readScriptList() - let idx = scriptsList.findIndex(item => item._id === id) - if (idx === -1) return res.fail({ data: false, msg: `脚本ID${ id }不存在` }) - const { _id } = scriptsList[idx] - let record = Object.assign({ _id }, { name, description, command, index }) - scriptsList.splice(idx, 1, record) - await writeScriptList(scriptsList) + await scriptsDB.updateAsync({ _id: id }, { name, description, command, index }) res.success({ data: '修改成功' }) } const removeScript = async ({ res, request }) => { let { params: { id } } = request - let scriptsList = await readScriptList() - let idx = scriptsList.findIndex(item => item._id === id) - if (idx === -1) return res.fail({ msg: '脚本ID不存在' }) - scriptsList.splice(idx, 1) - await writeScriptList(scriptsList) + await scriptsDB.removeAsync({ _id: id }) res.success({ data: '移除成功' }) } diff --git a/server/app/utils/storage.js b/server/app/utils/storage.js index fc0edc3..d1ae48b 100644 --- a/server/app/utils/storage.js +++ b/server/app/utils/storage.js @@ -1,4 +1,4 @@ -const { KeyDB, SshRecordDB, NotifyDB, NotifyConfigDB, ScriptsDB, OnekeyDB } = require('./db-class') +const { KeyDB, SshRecordDB, ScriptsDB, OnekeyDB } = require('./db-class') const readKey = async () => { return new Promise((resolve, reject) => { @@ -64,55 +64,6 @@ const writeSSHRecord = async (record = []) => { }) } -// const getNotifySwByType = async (type) => { -// if (!type) throw Error('missing params: type') -// try { -// let notifyList = await readNotifyList() -// let { sw } = notifyList.find((item) => item.type === type) -// return sw -// } catch (error) { -// consola.error(`通知类型[${ type }]不存在`) -// return false -// } -// } - -const readScriptList = async () => { - return new Promise((resolve, reject) => { - const scriptsDB = new ScriptsDB().getInstance() - scriptsDB.find({}, (err, docs) => { - if (err) { - consola.error('读取scripts list错误: ', err) - reject(err) - } else { - resolve(docs) - } - }) - }) -} - -const writeScriptList = async (list = []) => { - return new Promise((resolve, reject) => { - const scriptsDB = new ScriptsDB().getInstance() - scriptsDB.remove({}, { multi: true }, (err) => { - if (err) { - consola.error('清空scripts list出错:', err) - reject(err) - } else { - scriptsDB.compactDatafile() - scriptsDB.insert(list, (err, newDocs) => { - if (err) { - consola.error('写入新的group list出错:', err) - reject(err) - } else { - scriptsDB.compactDatafile() - resolve(newDocs) - } - }) - } - }) - }) -} - const readOneKeyRecord = async () => { return new Promise((resolve, reject) => { const onekeyDB = new OnekeyDB().getInstance() @@ -161,6 +112,5 @@ const deleteOneKeyRecord = async (ids =[]) => { module.exports = { readSSHRecord, writeSSHRecord, readKey, writeKey, - readScriptList, writeScriptList, readOneKeyRecord, writeOneKeyRecord, deleteOneKeyRecord } diff --git a/web/src/store/index.js b/web/src/store/index.js index 3a5a6d9..b44220d 100644 --- a/web/src/store/index.js +++ b/web/src/store/index.js @@ -18,7 +18,7 @@ const useStore = defineStore({ localScriptList: [], HostStatusSocket: null, user: localStorage.getItem('user') || null, - token: sessionStorage.getItem('token') || localStorage.getItem('token') || null, + token: localStorage.getItem('token') || sessionStorage.getItem('token') || null, title: '', isDark: false, menuCollapse: localStorage.getItem('menuCollapse') === 'true', diff --git a/web/src/views/login/index.vue b/web/src/views/login/index.vue index d7f8c2a..dacff51 100644 --- a/web/src/views/login/index.vue +++ b/web/src/views/login/index.vue @@ -142,6 +142,7 @@ onMounted(async () => { const { data } = await $api.getPubPem() if (!data) return (notKey.value = true) localStorage.setItem('publicKey', data) + $store.removeJwtToken() })