From 554cc0dbf8f69bcbedca71502feaa4756a56affc Mon Sep 17 00:00:00 2001 From: PiEgg Date: Wed, 11 Sep 2019 19:30:08 +0800 Subject: [PATCH] :hammer: Refactor: db class --- src/datastore/index.js | 89 ++++++++++-------------- src/datastore/pic-bed.js | 2 +- src/main/index.js | 36 +++++----- src/main/migrate/shortKeyUpdateHelper.js | 2 +- src/main/utils/beforeOpen.js | 56 +++++++++++++++ src/main/utils/getPicBeds.js | 2 +- src/main/utils/guiApi.js | 4 +- src/main/utils/pasteTemplate.js | 2 +- src/main/utils/picgoCoreIPC.js | 13 ++++ src/main/utils/updateChecker.js | 6 +- src/renderer/components/ChoosePicBed.vue | 2 +- src/renderer/components/ConfigForm.vue | 2 +- src/renderer/components/ShortKeyForm.vue | 2 +- src/renderer/layouts/SettingPage.vue | 14 ++-- src/renderer/pages/Gallery.vue | 11 ++- src/renderer/pages/MiniPage.vue | 4 +- src/renderer/pages/PicGoSetting.vue | 52 +++++++------- src/renderer/pages/Plugin.vue | 30 ++++---- src/renderer/pages/ShortCutPage.vue | 6 +- src/renderer/pages/TrayPage.vue | 4 +- src/renderer/pages/Upload.vue | 11 ++- src/renderer/pages/picbeds/AliYun.vue | 2 +- src/renderer/pages/picbeds/GitHub.vue | 2 +- src/renderer/pages/picbeds/Imgur.vue | 2 +- src/renderer/pages/picbeds/Others.vue | 4 +- src/renderer/pages/picbeds/Qiniu.vue | 2 +- src/renderer/pages/picbeds/TcYun.vue | 2 +- src/renderer/pages/picbeds/UpYun.vue | 2 +- src/renderer/pages/picbeds/Weibo.vue | 6 +- src/renderer/utils/ConfirmButtonMixin.js | 4 +- 30 files changed, 214 insertions(+), 162 deletions(-) diff --git a/src/datastore/index.js b/src/datastore/index.js index b480e654..6b4a17a4 100644 --- a/src/datastore/index.js +++ b/src/datastore/index.js @@ -21,62 +21,47 @@ if (process.type !== 'renderer') { } } -const adapter = new FileSync(path.join(STORE_PATH, '/data.json')) +class DB { + constructor () { + const adapter = new FileSync(path.join(STORE_PATH, '/data.json')) -const db = Datastore(adapter) -db._.mixin(LodashId) + this.db = Datastore(adapter) + this.db._.mixin(LodashId) -if (!db.has('uploaded').value()) { - db.set('uploaded', []).write() -} + if (!this.db.has('uploaded').value()) { + this.db.set('uploaded', []).write() + } -if (!db.has('picBed').value()) { - db.set('picBed', { - current: 'weibo' - }).write() -} + if (!this.db.has('picBed').value()) { + this.db.set('picBed', { + current: 'weibo' + }).write() + } -if (!db.has('settings.shortKey').value()) { - db.set('settings.shortKey', { - upload: 'CommandOrControl+Shift+P' - }).write() -} - -// init generate clipboard image files -let clipboardFiles = getClipboardFiles() -if (!fs.pathExistsSync(path.join(STORE_PATH, 'windows10.ps1'))) { - clipboardFiles.forEach(item => { - fs.copyFileSync(item.origin, item.dest) - }) -} else { - clipboardFiles.forEach(item => { - diffFilesAndUpdate(item.origin, item.dest) - }) -} - -function diffFilesAndUpdate (filePath1, filePath2) { - let file1 = fs.readFileSync(filePath1) - let file2 = fs.readFileSync(filePath2) - - if (!file1.equals(file2)) { - fs.copyFileSync(filePath1, filePath2) + if (!this.db.has('settings.shortKey').value()) { + this.db.set('settings.shortKey[picgo:upload]', { + enable: true, + key: 'CommandOrControl+Shift+P', + name: 'picgo:upload', + label: '快捷上传' + }).write() + } + } + read () { + return this.db.read() + } + get (key = '') { + return this.read().get(key).value() + } + set (key, value) { + return this.read().set(key, value).write() + } + has (key) { + return this.read().has(key).value() + } + insert (key, value) { + return this.read().get(key).insert(value).write() } } -function getClipboardFiles () { - let files = [ - '/linux.sh', - '/mac.applescript', - '/windows.ps1', - '/windows10.ps1' - ] - - return files.map(item => { - return { - origin: path.join(__static, item), - dest: path.join(STORE_PATH, item) - } - }) -} - -export default db +export default new DB() diff --git a/src/datastore/pic-bed.js b/src/datastore/pic-bed.js index 2df60ed6..eaf6bebe 100644 --- a/src/datastore/pic-bed.js +++ b/src/datastore/pic-bed.js @@ -43,7 +43,7 @@ let picBed = [ } ] -let picBedFromDB = db.read().get('picBed.list').value() || [] +let picBedFromDB = db.get('picBed.list') || [] let oldLength = picBedFromDB.length let newLength = picBed.length diff --git a/src/main/index.js b/src/main/index.js index dbf3eca8..c72da4b7 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -69,9 +69,9 @@ function createContextMenu () { return { label: item.name, type: 'radio', - checked: db.read().get('picBed.current').value() === item.type, + checked: db.get('picBed.current') === item.type, click () { - db.read().set('picBed.current', item.type).write() + db.set('picBed.current', item.type) if (settingWindow) { settingWindow.webContents.send('syncPicBed') } @@ -112,10 +112,10 @@ function createContextMenu () { { label: '打开更新助手', type: 'checkbox', - checked: db.get('settings.showUpdateTip').value(), + checked: db.get('settings.showUpdateTip'), click () { - const value = db.read().get('settings.showUpdateTip').value() - db.read().set('settings.showUpdateTip', !value).write() + const value = db.get('settings.showUpdateTip') + db.set('settings.showUpdateTip', !value) } }, { @@ -189,7 +189,7 @@ function createTray () { }) tray.on('drop-files', async (event, files) => { - const pasteStyle = db.read().get('settings.pasteStyle').value() || 'markdown' + const pasteStyle = db.get('settings.pasteStyle') || 'markdown' const imgs = await new Uploader(files, window.webContents).upload() if (imgs !== false) { for (let i in imgs) { @@ -202,7 +202,7 @@ function createTray () { setTimeout(() => { notification.show() }, i * 100) - db.read().get('uploaded').insert(imgs[i]).write() + db.insert('uploaded', imgs[i]) } window.webContents.send('dragFiles', imgs) } @@ -263,7 +263,7 @@ const createMiniWidow = () => { } } - if (db.read().get('settings.miniWindowOntop').value()) { + if (db.get('settings.miniWindowOntop')) { obj.alwaysOnTop = true } @@ -370,7 +370,7 @@ const uploadClipboardFiles = async () => { let img = await new Uploader(undefined, win.webContents).upload() if (img !== false) { if (img.length > 0) { - const pasteStyle = db.read().get('settings.pasteStyle').value() || 'markdown' + const pasteStyle = db.get('settings.pasteStyle') || 'markdown' clipboard.writeText(pasteTemplate(pasteStyle, img[0])) const notification = new Notification({ title: '上传成功', @@ -378,7 +378,7 @@ const uploadClipboardFiles = async () => { icon: img[0].imgUrl }) notification.show() - db.read().get('uploaded').insert(img[0]).write() + db.insert('uploaded', img[0]) window.webContents.send('clipboardFiles', []) window.webContents.send('uploadFiles', img) if (settingWindow) { @@ -398,7 +398,7 @@ const uploadChoosedFiles = async (webContents, files) => { const input = files.map(item => item.path) const imgs = await new Uploader(input, webContents).upload() if (imgs !== false) { - const pasteStyle = db.read().get('settings.pasteStyle').value() || 'markdown' + const pasteStyle = db.get('settings.pasteStyle') || 'markdown' let pasteText = '' for (let i in imgs) { pasteText += pasteTemplate(pasteStyle, imgs[i]) + '\r\n' @@ -410,7 +410,7 @@ const uploadChoosedFiles = async (webContents, files) => { setTimeout(() => { notification.show() }, i * 100) - db.read().get('uploaded').insert(imgs[i]).write() + db.insert('uploaded', imgs[i]) } clipboard.writeText(pasteText) window.webContents.send('uploadFiles', imgs) @@ -426,7 +426,7 @@ picgoCoreIPC(app, ipcMain) ipcMain.on('uploadClipboardFiles', async (evt, file) => { const img = await new Uploader(undefined, window.webContents).upload() if (img !== false) { - const pasteStyle = db.read().get('settings.pasteStyle').value() || 'markdown' + const pasteStyle = db.get('settings.pasteStyle') || 'markdown' clipboard.writeText(pasteTemplate(pasteStyle, img[0])) const notification = new Notification({ title: '上传成功', @@ -435,7 +435,7 @@ ipcMain.on('uploadClipboardFiles', async (evt, file) => { icon: img[0].imgUrl }) notification.show() - db.read().get('uploaded').insert(img[0]).write() + db.insert('uploaded', img[0]) window.webContents.send('clipboardFiles', []) if (settingWindow) { settingWindow.webContents.send('updateGallery') @@ -558,13 +558,13 @@ app.on('ready', () => { if (process.platform === 'darwin' || process.platform === 'win32') { createTray() } - db.read().set('needReload', false).write() + db.set('needReload', false) updateChecker() initEventCenter() // 不需要阻塞 process.nextTick(() => { - updateShortKeyFromVersion212(db, db.read().get('settings.shortKey').value()) - initShortKeyRegister(globalShortcut, db.read().get('settings.shortKey').value()) + updateShortKeyFromVersion212(db, db.get('settings.shortKey')) + initShortKeyRegister(globalShortcut, db.get('settings.shortKey')) }) if (process.env.NODE_ENV !== 'development') { @@ -606,7 +606,7 @@ app.on('will-quit', () => { }) app.setLoginItemSettings({ - openAtLogin: db.read().get('settings.autoStart').value() || false + openAtLogin: db.get('settings.autoStart') || false }) function initEventCenter () { diff --git a/src/main/migrate/shortKeyUpdateHelper.js b/src/main/migrate/shortKeyUpdateHelper.js index fa31508d..d1fceafc 100644 --- a/src/main/migrate/shortKeyUpdateHelper.js +++ b/src/main/migrate/shortKeyUpdateHelper.js @@ -12,7 +12,7 @@ const updateShortKeyFromVersion212 = (db, shortKeyConfig) => { delete shortKeyConfig.upload } if (needUpgrade) { - db.read().set('settings.shortKey', shortKeyConfig).write() + db.set('settings.shortKey', shortKeyConfig) return shortKeyConfig } else { return false diff --git a/src/main/utils/beforeOpen.js b/src/main/utils/beforeOpen.js index 4cb2fee8..cea7916d 100644 --- a/src/main/utils/beforeOpen.js +++ b/src/main/utils/beforeOpen.js @@ -1,13 +1,28 @@ import fs from 'fs-extra' import path from 'path' import os from 'os' +import { remote, app } from 'electron' if (process.env.NODE_ENV !== 'development') { global.__static = path.join(__dirname, '/static').replace(/\\/g, '\\\\') } if (process.env.DEBUG_ENV === 'debug') { global.__static = path.join(__dirname, '../../../static').replace(/\\/g, '\\\\') } + +const APP = process.type === 'renderer' ? remote.app : app +const STORE_PATH = APP.getPath('userData') + function beforeOpen () { + if (process.platform === 'darwin') { + resolveMacWorkFlow() + } + resolveClipboardImageGenerator() +} + +/** + * macOS 右键菜单 + */ +function resolveMacWorkFlow () { const dest = `${os.homedir}/Library/Services/Upload pictures with PicGo.workflow` if (fs.existsSync(dest)) { return true @@ -20,4 +35,45 @@ function beforeOpen () { } } +/** + * 初始化剪贴板生成图片的脚本 + */ +function resolveClipboardImageGenerator () { + let clipboardFiles = getClipboardFiles() + if (!fs.pathExistsSync(path.join(STORE_PATH, 'windows10.ps1'))) { + clipboardFiles.forEach(item => { + fs.copyFileSync(item.origin, item.dest) + }) + } else { + clipboardFiles.forEach(item => { + diffFilesAndUpdate(item.origin, item.dest) + }) + } + + function diffFilesAndUpdate (filePath1, filePath2) { + let file1 = fs.readFileSync(filePath1) + let file2 = fs.readFileSync(filePath2) + + if (!file1.equals(file2)) { + fs.copyFileSync(filePath1, filePath2) + } + } + + function getClipboardFiles () { + let files = [ + '/linux.sh', + '/mac.applescript', + '/windows.ps1', + '/windows10.ps1' + ] + + return files.map(item => { + return { + origin: path.join(__static, item), + dest: path.join(STORE_PATH, item) + } + }) + } +} + export default beforeOpen diff --git a/src/main/utils/getPicBeds.js b/src/main/utils/getPicBeds.js index 1f36be47..ae57368d 100644 --- a/src/main/utils/getPicBeds.js +++ b/src/main/utils/getPicBeds.js @@ -9,7 +9,7 @@ const getPicBeds = (app) => { const CONFIG_PATH = path.join(STORE_PATH, '/data.json') const picgo = new PicGo(CONFIG_PATH) const picBedTypes = picgo.helper.uploader.getIdList() - const picBedFromDB = db.read().get('picBed.list').value() || [] + const picBedFromDB = db.get('picBed.list') || [] const picBeds = picBedTypes.map(item => { const visible = picBedFromDB.find(i => i.type === item) // object or undefined return { diff --git a/src/main/utils/guiApi.js b/src/main/utils/guiApi.js index 69615efc..65730330 100644 --- a/src/main/utils/guiApi.js +++ b/src/main/utils/guiApi.js @@ -60,7 +60,7 @@ class GuiApi { async upload (input) { const imgs = await new Uploader(input, this[WEBCONTENTS], this[PICGO]).upload() if (imgs !== false) { - const pasteStyle = db.read().get('settings.pasteStyle').value() || 'markdown' + const pasteStyle = db.get('settings.pasteStyle') || 'markdown' let pasteText = '' for (let i in imgs) { pasteText += pasteTemplate(pasteStyle, imgs[i]) + '\r\n' @@ -72,7 +72,7 @@ class GuiApi { setTimeout(() => { notification.show() }, i * 100) - db.read().get('uploaded').insert(imgs[i]).write() + db.insert('uploaded', imgs[i]) } clipboard.writeText(pasteText) this[WEBCONTENTS].send('uploadFiles', imgs) diff --git a/src/main/utils/pasteTemplate.js b/src/main/utils/pasteTemplate.js index f97af0a3..9e499e56 100644 --- a/src/main/utils/pasteTemplate.js +++ b/src/main/utils/pasteTemplate.js @@ -19,7 +19,7 @@ const formatCustomLink = (customLink, item) => { export default (style, item) => { let url = item.url || item.imgUrl - const customLink = db.read().get('settings.customLink').value() || '$url' + const customLink = db.get('settings.customLink') || '$url' const tpl = { 'markdown': `![](${url})`, 'HTML': ``, diff --git a/src/main/utils/picgoCoreIPC.js b/src/main/utils/picgoCoreIPC.js index ecb6fe5d..ba80d764 100644 --- a/src/main/utils/picgoCoreIPC.js +++ b/src/main/utils/picgoCoreIPC.js @@ -1,6 +1,7 @@ import path from 'path' import GuiApi from './guiApi' import { dialog, shell } from 'electron' +import db from '../../datastore' // eslint-disable-next-line const requireFunc = typeof __webpack_require__ === 'function' ? __non_webpack_require__ : require @@ -187,6 +188,17 @@ const handleRemoveFiles = (ipcMain, CONFIG_PATH) => { }) } +const handlePluginShortKeyRegister = (plugin) => { + if (plugin.shortKeys && plugin.shortKeys.length > 0) { + let shortKeyConfig = db.get('settings.shortKey') + plugin.shortKeys.forEach(item => { + if (!shortKeyConfig[item.name]) { + shortKeyConfig[item.name] = item + } + }) + } +} + export default (app, ipcMain) => { const STORE_PATH = app.getPath('userData') const CONFIG_PATH = path.join(STORE_PATH, '/data.json') @@ -197,4 +209,5 @@ export default (app, ipcMain) => { handleGetPicBedConfig(ipcMain, CONFIG_PATH) handlePluginActions(ipcMain, CONFIG_PATH) handleRemoveFiles(ipcMain, CONFIG_PATH) + handlePluginShortKeyRegister({}) } diff --git a/src/main/utils/updateChecker.js b/src/main/utils/updateChecker.js index da007c3c..cc553974 100644 --- a/src/main/utils/updateChecker.js +++ b/src/main/utils/updateChecker.js @@ -7,9 +7,9 @@ const release = 'https://api.github.com/repos/Molunerfinn/PicGo/releases/latest' const downloadUrl = 'https://github.com/Molunerfinn/PicGo/releases/latest' const checkVersion = async () => { - let showTip = db.read().get('settings.showUpdateTip').value() + let showTip = db.get('settings.showUpdateTip') if (showTip === undefined) { - db.read().set('settings.showUpdateTip', true).write() + db.set('settings.showUpdateTip', true) showTip = true } if (showTip) { @@ -29,7 +29,7 @@ const checkVersion = async () => { if (res === 0) { // if selected yes shell.openExternal(downloadUrl) } - db.read().set('settings.showUpdateTip', !checkboxChecked).write() + db.set('settings.showUpdateTip', !checkboxChecked) }) } } else { diff --git a/src/renderer/components/ChoosePicBed.vue b/src/renderer/components/ChoosePicBed.vue index 7a5751ec..bab535a9 100644 --- a/src/renderer/components/ChoosePicBed.vue +++ b/src/renderer/components/ChoosePicBed.vue @@ -21,7 +21,7 @@ export default { } }, created () { - if (this.type === this.$db.get('picBed.current').value()) { + if (this.type === this.$db.get('picBed.current')) { this.value = true } }, diff --git a/src/renderer/components/ConfigForm.vue b/src/renderer/components/ConfigForm.vue index d6512aaa..b202e3bb 100644 --- a/src/renderer/components/ConfigForm.vue +++ b/src/renderer/components/ConfigForm.vue @@ -83,7 +83,7 @@ export default { deep: true, handler (val) { this.ruleForm = Object.assign({}, {}) - const config = this.$db.read().get(`picBed.${this.id}`).value() + const config = this.$db.get(`picBed.${this.id}`) if (val.length > 0) { this.configList = cloneDeep(val).map(item => { let defaultValue = item.default !== undefined diff --git a/src/renderer/components/ShortKeyForm.vue b/src/renderer/components/ShortKeyForm.vue index 9a8c7586..90a64ca1 100644 --- a/src/renderer/components/ShortKeyForm.vue +++ b/src/renderer/components/ShortKeyForm.vue @@ -18,7 +18,7 @@ export default { } }, created () { - this.$db.read().get('settings.shortKey') + this.$db.get('settings.shortKey') }, data () { return { diff --git a/src/renderer/layouts/SettingPage.vue b/src/renderer/layouts/SettingPage.vue index 09cc701b..d0fd3bed 100644 --- a/src/renderer/layouts/SettingPage.vue +++ b/src/renderer/layouts/SettingPage.vue @@ -185,7 +185,7 @@ export default { keyBindingVisible: false, customLinkVisible: false, customLink: { - value: db.read().get('customLink').value() || '$url' + value: db.get('customLink') || '$url' }, rules: { value: [ @@ -194,7 +194,7 @@ export default { }, os: '', shortKey: { - upload: db.read().get('shortKey.upload').value() + upload: db.get('shortKey.upload') }, picBed: [], // for showInputBox @@ -279,22 +279,22 @@ export default { }, cancelKeyBinding () { this.keyBindingVisible = false - this.shortKey = db.read().get('shortKey').value() + this.shortKey = db.get('shortKey') }, confirmKeyBinding () { - const oldKey = db.read().get('shortKey').value() - db.read().set('shortKey', this.shortKey).write() + const oldKey = db.get('shortKey') + db.set('shortKey', this.shortKey) this.keyBindingVisible = false this.$electron.ipcRenderer.send('updateShortKey', oldKey) }, cancelCustomLink () { this.customLinkVisible = false - this.customLink.value = db.read().get('customLink').value() || '$url' + this.customLink.value = db.get('customLink') || '$url' }, confirmCustomLink () { this.$refs.customLink.validate((valid) => { if (valid) { - db.read().set('customLink', this.customLink.value).write() + db.set('customLink', this.customLink.value) this.customLinkVisible = false this.$electron.ipcRenderer.send('updateCustomLink') } else { diff --git a/src/renderer/pages/Gallery.vue b/src/renderer/pages/Gallery.vue index ac833073..279ff376 100644 --- a/src/renderer/pages/Gallery.vue +++ b/src/renderer/pages/Gallery.vue @@ -213,7 +213,7 @@ export default { this.changeZIndexForGallery(false) }, copy (item) { - const style = this.$db.read().get('settings.pasteStyle').value() || 'markdown' + const style = this.$db.get('settings.pasteStyle') || 'markdown' const copyLink = pasteStyle(style, item) const obj = { title: '复制链接成功', @@ -232,7 +232,7 @@ export default { cancelButtonText: '取消', type: 'warning' }).then(() => { - const file = this.$db.read().get('uploaded').getById(id).value() + const file = this.$db.get('uploaded').getById(id) this.$db.read().get('uploaded').removeById(id).write() this.$electron.ipcRenderer.send('removeFiles', [file]) const obj = { @@ -319,7 +319,7 @@ export default { multiCopy () { if (Object.values(this.choosedList).some(item => item)) { let copyString = '' - const style = this.$db.read().get('settings.pasteStyle').value() || 'markdown' + const style = this.$db.get('settings.pasteStyle') || 'markdown' // choosedList -> { [id]: true or false }; true means choosed. false means not choosed. Object.keys(this.choosedList).forEach(key => { if (this.choosedList[key]) { @@ -343,11 +343,10 @@ export default { this.handleBarActive = !this.handleBarActive }, getPasteStyle () { - this.pasteStyle = this.$db.read().get('settings.pasteStyle').value() || 'markdown' + this.pasteStyle = this.$db.get('settings.pasteStyle') || 'markdown' }, handlePasteStyleChange (val) { - this.$db.read().set('settings.pasteStyle', val) - .write() + this.$db.set('settings.pasteStyle', val) this.pasteStyle = val } }, diff --git a/src/renderer/pages/MiniPage.vue b/src/renderer/pages/MiniPage.vue index 3fea2b80..422abdf3 100644 --- a/src/renderer/pages/MiniPage.vue +++ b/src/renderer/pages/MiniPage.vue @@ -136,9 +136,9 @@ export default { return { label: item.name, type: 'radio', - checked: this.$db.read().get('picBed.current').value() === item.type, + checked: this.$db.get('picBed.current') === item.type, click () { - _this.$db.read().set('picBed.current', item.type).write() + _this.$db.set('picBed.current', item.type) _this.$electron.ipcRenderer.send('syncPicBed') } } diff --git a/src/renderer/pages/PicGoSetting.vue b/src/renderer/pages/PicGoSetting.vue index 2dd970a1..e5e18f15 100644 --- a/src/renderer/pages/PicGoSetting.vue +++ b/src/renderer/pages/PicGoSetting.vue @@ -290,7 +290,7 @@ export default { return callback() } } - let logLevel = this.$db.read().get('settings.logLevel').value() + let logLevel = this.$db.get('settings.logLevel') if (!Array.isArray(logLevel)) { if (logLevel && logLevel.length > 0) { logLevel = [logLevel] @@ -300,13 +300,13 @@ export default { } return { form: { - updateHelper: this.$db.read().get('settings.showUpdateTip').value(), + updateHelper: this.$db.get('settings.showUpdateTip'), showPicBedList: [], - autoStart: this.$db.read().get('settings.autoStart').value() || false, - rename: this.$db.read().get('settings.rename').value() || false, - autoRename: this.$db.read().get('settings.autoRename').value() || false, - uploadNotification: this.$db.read().get('settings.uploadNotification').value() || false, - miniWindowOntop: this.$db.read().get('settings.miniWindowOntop').value() || false, + autoStart: this.$db.get('settings.autoStart') || false, + rename: this.$db.get('settings.rename') || false, + autoRename: this.$db.get('settings.autoRename') || false, + uploadNotification: this.$db.get('settings.uploadNotification') || false, + miniWindowOntop: this.$db.get('settings.miniWindowOntop') || false, logLevel }, picBed: [], @@ -316,12 +316,12 @@ export default { checkUpdateVisible: false, proxyVisible: false, customLink: { - value: this.$db.read().get('settings.customLink').value() || '$url' + value: this.$db.get('settings.customLink') || '$url' }, shortKey: { - upload: this.$db.read().get('settings.shortKey.upload').value() + upload: this.$db.get('settings.shortKey.upload') }, - proxy: this.$db.read().get('picBed.proxy').value() || undefined, + proxy: this.$db.get('picBed.proxy') || undefined, rules: { value: [ { validator: customLinkRule, trigger: 'blur' } @@ -368,22 +368,22 @@ export default { }, cancelKeyBinding () { this.keyBindingVisible = false - this.shortKey = this.$db.read().get('settings.shortKey').value() + this.shortKey = this.$db.get('settings.shortKey') }, confirmKeyBinding () { - const oldKey = this.$db.read().get('settings.shortKey').value() - this.$db.read().set('settings.shortKey', this.shortKey).write() + const oldKey = this.$db.get('settings.shortKey') + this.$db.set('settings.shortKey', this.shortKey) this.keyBindingVisible = false this.$electron.ipcRenderer.send('updateShortKey', oldKey) }, cancelCustomLink () { this.customLinkVisible = false - this.customLink.value = this.$db.read().get('settings.customLink').value() || '$url' + this.customLink.value = this.$db.get('settings.customLink') || '$url' }, confirmCustomLink () { this.$refs.customLink.validate((valid) => { if (valid) { - this.$db.read().set('settings.customLink', this.customLink.value).write() + this.$db.set('settings.customLink', this.customLink.value) this.customLinkVisible = false this.$electron.ipcRenderer.send('updateCustomLink') } else { @@ -393,11 +393,11 @@ export default { }, cancelProxy () { this.proxyVisible = false - this.proxy = this.$db.read().get('picBed.proxy').value() || undefined + this.proxy = this.$db.get('picBed.proxy') || undefined }, confirmProxy () { this.proxyVisible = false - this.$db.read().set('picBed.proxy', this.proxy).write() + this.$db.set('picBed.proxy', this.proxy) const successNotification = new window.Notification('设置代理', { body: '设置成功' }) @@ -406,7 +406,7 @@ export default { } }, updateHelperChange (val) { - this.$db.read().set('settings.showUpdateTip', val).write() + this.$db.set('settings.showUpdateTip', val) }, handleShowPicBedListChange (val) { const list = this.picBed.map(item => { @@ -417,18 +417,18 @@ export default { } return item }) - this.$db.read().set('picBed.list', list).write() + this.$db.set('picBed.list', list) this.$electron.ipcRenderer.send('getPicBeds') }, handleAutoStartChange (val) { - this.$db.read().set('settings.autoStart', val).write() + this.$db.set('settings.autoStart', val) this.$electron.ipcRenderer.send('autoStart', val) }, handleRename (val) { - this.$db.read().set('settings.rename', val).write() + this.$db.set('settings.rename', val) }, handleAutoRename (val) { - this.$db.read().set('settings.autoRename', val).write() + this.$db.set('settings.autoRename', val) }, compareVersion2Update (current, latest) { const currentVersion = current.split('.').map(item => parseInt(item)) @@ -463,17 +463,17 @@ export default { this.checkUpdateVisible = false }, handleUploadNotification (val) { - this.$db.read().set('settings.uploadNotification', val).write() + this.$db.set('settings.uploadNotification', val) }, handleMiniWindowOntop (val) { - this.$db.read().set('settings.miniWindowOntop', val).write() + this.$db.set('settings.miniWindowOntop', val) this.$message('需要重启生效') }, confirmLogLevelSetting () { if (this.form.logLevel.length === 0) { return this.$message.error('请选择日志记录等级') } - this.$db.read().set('settings.logLevel', this.form.logLevel).write() + this.$db.set('settings.logLevel', this.form.logLevel) const successNotification = new window.Notification('设置日志', { body: '设置成功' }) @@ -484,7 +484,7 @@ export default { }, cancelLogLevelSetting () { this.logFileVisible = false - let logLevel = this.$db.read().get('settings.logLevel').value() + let logLevel = this.$db.get('settings.logLevel') if (!Array.isArray(logLevel)) { if (logLevel && logLevel.length > 0) { logLevel = [logLevel] diff --git a/src/renderer/pages/Plugin.vue b/src/renderer/pages/Plugin.vue index 2f03dbb1..7e702e0c 100644 --- a/src/renderer/pages/Plugin.vue +++ b/src/renderer/pages/Plugin.vue @@ -183,7 +183,7 @@ export default { }) this.getPluginList() this.getSearchResult = debounce(this.getSearchResult, 50) - this.needReload = this.$db.read().get('needReload').value() + this.needReload = this.$db.get('needReload') }, methods: { buildContextMenu (plugin) { @@ -192,7 +192,7 @@ export default { label: '启用插件', enabled: !plugin.enabled, click () { - _this.$db.read().set(`picgoPlugins.picgo-plugin-${plugin.name}`, true).write() + _this.$db.set(`picgoPlugins.picgo-plugin-${plugin.name}`, true) plugin.enabled = true _this.getPicBeds() } @@ -200,7 +200,7 @@ export default { label: '禁用插件', enabled: plugin.enabled, click () { - _this.$db.read().set(`picgoPlugins.picgo-plugin-${plugin.name}`, false).write() + _this.$db.set(`picgoPlugins.picgo-plugin-${plugin.name}`, false) plugin.enabled = false _this.getPicBeds() if (plugin.config.transformer.name) { @@ -238,7 +238,7 @@ export default { // handle transformer if (plugin.config.transformer.name) { - let currentTransformer = this.$db.read().get('picBed.transformer').value() || 'path' + let currentTransformer = this.$db.get('picBed.transformer') || 'path' let pluginTransformer = plugin.config.transformer.name const obj = { label: `${currentTransformer === pluginTransformer ? '禁用' : '启用'}transformer - ${plugin.config.transformer.name}`, @@ -311,7 +311,7 @@ export default { this.$electron.remote.app.exit(0) }, handleReload () { - this.$db.read().set('needReload', true).write() + this.$db.set('needReload', true) this.needReload = true const successNotification = new window.Notification('更新成功', { body: '请点击此通知重启应用以生效' @@ -324,11 +324,11 @@ export default { this.searchText = '' }, toggleTransformer (transformer) { - let currentTransformer = this.$db.read().get('picBed.transformer').value() || 'path' + let currentTransformer = this.$db.get('picBed.transformer') || 'path' if (currentTransformer === transformer) { - this.$db.read().set('picBed.transformer', 'path').write() + this.$db.set('picBed.transformer', 'path') } else { - this.$db.read().set('picBed.transformer', transformer).write() + this.$db.set('picBed.transformer', transformer) } }, async handleConfirmConfig () { @@ -336,13 +336,13 @@ export default { if (result !== false) { switch (this.currentType) { case 'plugin': - this.$db.read().set(`picgo-plugin-${this.configName}`, result).write() + this.$db.set(`picgo-plugin-${this.configName}`, result) break case 'uploader': - this.$db.read().set(`picBed.${this.configName}`, result).write() + this.$db.set(`picBed.${this.configName}`, result) break case 'transformer': - this.$db.read().set(`transformer.${this.configName}`, result).write() + this.$db.set(`transformer.${this.configName}`, result) break } const successNotification = new window.Notification('设置结果', { @@ -393,15 +393,15 @@ export default { // restore Uploader & Transformer handleRestoreState (item, name) { if (item === 'uploader') { - const current = this.$db.read().get('picBed.current').value() + const current = this.$db.get('picBed.current') if (current === name) { - this.$db.read().set('picBed.current', 'smms').write() + this.$db.set('picBed.current', 'smms') } } if (item === 'transformer') { - const current = this.$db.read().get('picBed.transformer').value() + const current = this.$db.get('picBed.transformer') if (current === name) { - this.$db.read().set('picBed.transformer', 'path').write() + this.$db.set('picBed.transformer', 'path') } } }, diff --git a/src/renderer/pages/ShortCutPage.vue b/src/renderer/pages/ShortCutPage.vue index ca6681f4..9f3044e6 100644 --- a/src/renderer/pages/ShortCutPage.vue +++ b/src/renderer/pages/ShortCutPage.vue @@ -71,7 +71,7 @@ export default { } }, created () { - const shortKeyConfig = this.$db.read().get('settings.shortKey').value() + const shortKeyConfig = this.$db.get('settings.shortKey') this.list = Object.keys(shortKeyConfig).map(item => shortKeyConfig[item]) }, methods: { @@ -82,8 +82,8 @@ export default { toggleEnable (item) { const status = !item.enable item.enable = status - this.$db.set(`settings.shortKey.${item.name}.enable`, status).write() - this.$electron.ipcRenderer.send('updateShortKeyConfig', item) + this.$db.set(`settings.shortKey.${item.name}.enable`, status) + this.$electron.ipcRenderer.send('updateShortKey', item) } } } diff --git a/src/renderer/pages/TrayPage.vue b/src/renderer/pages/TrayPage.vue index bc01ca56..d50944b4 100644 --- a/src/renderer/pages/TrayPage.vue +++ b/src/renderer/pages/TrayPage.vue @@ -53,7 +53,7 @@ this.getData() this.$electron.ipcRenderer.on('dragFiles', (event, files) => { files.forEach(item => { - this.$db.read().get('uploaded').insert(item).write() + this.$db.insert('uploaded', item) }) this.files = this.$db.read().get('uploaded').slice().reverse().slice(0, 5).value() }) @@ -83,7 +83,7 @@ this.notification.body = item.imgUrl this.notification.icon = item.imgUrl const myNotification = new window.Notification(this.notification.title, this.notification) - const pasteStyle = this.$db.read().get('settings.pasteStyle').value() || 'markdown' + const pasteStyle = this.$db.get('settings.pasteStyle') || 'markdown' this.$electron.clipboard.writeText(pasteTemplate(pasteStyle, item)) myNotification.onclick = () => { return true diff --git a/src/renderer/pages/Upload.vue b/src/renderer/pages/Upload.vue index d63c2617..17df4fe9 100644 --- a/src/renderer/pages/Upload.vue +++ b/src/renderer/pages/Upload.vue @@ -130,17 +130,16 @@ export default { this.$electron.ipcRenderer.send('uploadChoosedFiles', sendFiles) }, getPasteStyle () { - this.pasteStyle = this.$db.read().get('settings.pasteStyle').value() || 'markdown' + this.pasteStyle = this.$db.get('settings.pasteStyle') || 'markdown' }, handlePasteStyleChange (val) { - this.$db.read().set('settings.pasteStyle', val) - .write() + this.$db.set('settings.pasteStyle', val) }, uploadClipboardFiles () { this.$electron.ipcRenderer.send('uploadClipboardFilesFromUploadPage') }, getDefaultPicBed () { - const current = this.$db.read().get('picBed.current').value() + const current = this.$db.get('picBed.current') this.picBed.forEach(item => { if (item.type === current) { this.picBedName = item.name @@ -161,9 +160,9 @@ export default { return { label: item.name, type: 'radio', - checked: this.$db.read().get('picBed.current').value() === item.type, + checked: this.$db.get('picBed.current') === item.type, click () { - _this.$db.read().set('picBed.current', item.type).write() + _this.$db.set('picBed.current', item.type) _this.$electron.ipcRenderer.send('syncPicBed') } } diff --git a/src/renderer/pages/picbeds/AliYun.vue b/src/renderer/pages/picbeds/AliYun.vue index 05a39465..2ce07c00 100644 --- a/src/renderer/pages/picbeds/AliYun.vue +++ b/src/renderer/pages/picbeds/AliYun.vue @@ -82,7 +82,7 @@ export default { } }, created () { - const config = this.$db.get('picBed.aliyun').value() + const config = this.$db.get('picBed.aliyun') if (config) { for (let i in config) { this.form[i] = config[i] diff --git a/src/renderer/pages/picbeds/GitHub.vue b/src/renderer/pages/picbeds/GitHub.vue index b1cf554b..bde7c005 100644 --- a/src/renderer/pages/picbeds/GitHub.vue +++ b/src/renderer/pages/picbeds/GitHub.vue @@ -73,7 +73,7 @@ export default { } }, created () { - const config = this.$db.get('picBed.github').value() + const config = this.$db.get('picBed.github') if (config) { for (let i in config) { this.form[i] = config[i] diff --git a/src/renderer/pages/picbeds/Imgur.vue b/src/renderer/pages/picbeds/Imgur.vue index c165ede6..e082d05c 100644 --- a/src/renderer/pages/picbeds/Imgur.vue +++ b/src/renderer/pages/picbeds/Imgur.vue @@ -50,7 +50,7 @@ export default { } }, created () { - const config = this.$db.get('picBed.imgur').value() + const config = this.$db.get('picBed.imgur') if (config) { for (let i in config) { this.form[i] = config[i] diff --git a/src/renderer/pages/picbeds/Others.vue b/src/renderer/pages/picbeds/Others.vue index 4c21e2e5..a6acc288 100644 --- a/src/renderer/pages/picbeds/Others.vue +++ b/src/renderer/pages/picbeds/Others.vue @@ -52,7 +52,7 @@ export default { async handleConfirm () { const result = await this.$refs.configForm.validate() if (result !== false) { - this.$db.read().set(`picBed.${this.type}`, result).write() + this.$db.set(`picBed.${this.type}`, result) const successNotification = new window.Notification('设置结果', { body: '设置成功' }) @@ -62,7 +62,7 @@ export default { } }, setDefaultPicBed (type) { - this.$db.read().set('picBed.current', type).write() + this.$db.set('picBed.current', type) this.defaultPicBed = type const successNotification = new window.Notification('设置默认图床', { body: '设置成功' diff --git a/src/renderer/pages/picbeds/Qiniu.vue b/src/renderer/pages/picbeds/Qiniu.vue index a728173b..e90944b0 100644 --- a/src/renderer/pages/picbeds/Qiniu.vue +++ b/src/renderer/pages/picbeds/Qiniu.vue @@ -90,7 +90,7 @@ export default { } }, created () { - const config = this.$db.get('picBed.qiniu').value() + const config = this.$db.get('picBed.qiniu') if (config) { for (let i in config) { this.form[i] = config[i] diff --git a/src/renderer/pages/picbeds/TcYun.vue b/src/renderer/pages/picbeds/TcYun.vue index 17e4f6f6..7b53ef8b 100644 --- a/src/renderer/pages/picbeds/TcYun.vue +++ b/src/renderer/pages/picbeds/TcYun.vue @@ -105,7 +105,7 @@ export default { } }, created () { - const config = this.$db.get('picBed.tcyun').value() + const config = this.$db.get('picBed.tcyun') if (config) { for (let i in config) { this.form[i] = config[i] diff --git a/src/renderer/pages/picbeds/UpYun.vue b/src/renderer/pages/picbeds/UpYun.vue index de18e6ab..4998782a 100644 --- a/src/renderer/pages/picbeds/UpYun.vue +++ b/src/renderer/pages/picbeds/UpYun.vue @@ -81,7 +81,7 @@ export default { } }, created () { - const config = this.$db.get('picBed.upyun').value() + const config = this.$db.get('picBed.upyun') if (config) { for (let i in config) { this.form[i] = config[i] diff --git a/src/renderer/pages/picbeds/Weibo.vue b/src/renderer/pages/picbeds/Weibo.vue index 45a07b42..9b02da2f 100644 --- a/src/renderer/pages/picbeds/Weibo.vue +++ b/src/renderer/pages/picbeds/Weibo.vue @@ -78,7 +78,7 @@ export default { } }, created () { - const config = this.$db.read().get('picBed.weibo').value() + const config = this.$db.get('picBed.weibo') if (config) { this.form.username = config.username this.form.password = config.password @@ -91,13 +91,13 @@ export default { confirm (formName) { this.$refs[formName].validate((valid) => { if (valid) { - this.$db.read().set('picBed.weibo', { + this.$db.set('picBed.weibo', { username: this.form.username, password: this.form.password, quality: this.quality, cookie: this.form.cookie, chooseCookie: this.chooseCookie - }).write() + }) const successNotification = new window.Notification('设置结果', { body: '设置成功' }) diff --git a/src/renderer/utils/ConfirmButtonMixin.js b/src/renderer/utils/ConfirmButtonMixin.js index fc70d5cb..b8ab6e43 100644 --- a/src/renderer/utils/ConfirmButtonMixin.js +++ b/src/renderer/utils/ConfirmButtonMixin.js @@ -2,12 +2,12 @@ export default { name: '', data () { return { - defaultPicBed: this.$db.read().get('picBed.current').value() + defaultPicBed: this.$db.get('picBed.current') } }, methods: { setDefaultPicBed (type) { - this.$db.read().set('picBed.current', type).write() + this.$db.set('picBed.current', type) this.defaultPicBed = type const successNotification = new window.Notification('设置默认图床', { body: '设置成功'