diff --git a/public/preload.js b/public/preload.js index 5d510f6..11f1464 100644 --- a/public/preload.js +++ b/public/preload.js @@ -1,4 +1,4 @@ -const { existsSync, readFileSync, writeFileSync, mkdirSync } = require('fs') +const { existsSync, readFileSync, writeFileSync, mkdirSync, watch } = require('fs') const crypto = require('crypto') const listener = require('./listener') const { clipboard } = require('electron') @@ -10,6 +10,7 @@ window.exports = { readFileSync, writeFileSync, mkdirSync, + watch, crypto, listener, clipboard, diff --git a/src/global/initPlugin.js b/src/global/initPlugin.js index de46d0d..54aec7b 100644 --- a/src/global/initPlugin.js +++ b/src/global/initPlugin.js @@ -4,6 +4,7 @@ const { readFileSync, writeFileSync, mkdirSync, + watch, crypto, listener, clipboard, @@ -53,6 +54,23 @@ export default function initPlugin() { this.dataBase = defaultDB this.updateDataBaseLocal(defaultDB) } + watchDataBaseUpdate() { + watch(this.path, (eventType, filename) => { + if (eventType === 'change') { + // 更新内存中的数据 + const data = readFileSync(this.path, { + encoding: 'utf8' + }) + try { + const dataBase = JSON.parse(data) + this.dataBase = dataBase + } catch (err) { + utools.showNotification('读取剪切板出错: ' + err) + return + } + } + }) + } updateDataBase() { // 更新内存数据 this.dataBase.updateTime = new Date().getTime()