♻️ 修改系统设置存储方式

This commit is contained in:
muwoo
2023-08-22 17:41:51 +08:00
parent d2d94c13b7
commit f4f91e1639
24 changed files with 202 additions and 110 deletions

View File

@@ -10,8 +10,9 @@ import {
shell,
} from 'electron';
import { runner, detach } from '../browsers';
import DBInstance from './db';
import fs from 'fs';
import { LocalDb, screenCapture } from '@/core';
import { screenCapture } from '@/core';
import plist from 'plist';
import ks from 'node-key-sender';
@@ -21,14 +22,9 @@ import getCopyFiles from '@/common/utils/getCopyFiles';
import mainInstance from '../index';
const runnerInstance = runner();
const detachInstance = detach();
const dbInstance = new LocalDb(app.getPath('userData'));
dbInstance.init();
class API {
class API extends DBInstance {
public currentPlugin: null | any = null;
private DBKEY = 'RUBICK_DB_DEFAULT';
init(mainWindow: BrowserWindow) {
// 响应 preload.js 事件
ipcMain.on('msg-trigger', async (event, arg) => {
@@ -196,26 +192,6 @@ class API {
return false;
}
public dbPut({ data }) {
return dbInstance.put(this.DBKEY, data.data);
}
public dbGet({ data }) {
return dbInstance.get(this.DBKEY, data.id);
}
public dbRemove({ data }) {
return dbInstance.remove(this.DBKEY, data.doc);
}
public dbBulkDocs({ data }) {
return dbInstance.bulkDocs(this.DBKEY, data.docs);
}
public dbAllDocs({ data }) {
return dbInstance.allDocs(this.DBKEY, data.key);
}
public getFeatures() {
return this.currentPlugin.features;
}

28
src/main/common/db.ts Normal file
View File

@@ -0,0 +1,28 @@
import { LocalDb } from '@/core';
import { app } from 'electron';
const dbInstance = new LocalDb(app.getPath('userData'));
dbInstance.init();
export default class DBInstance {
private DBKEY = 'RUBICK_DB_DEFAULT';
public dbPut({ data }) {
return dbInstance.put(this.DBKEY, data.data);
}
public dbGet({ data }) {
return dbInstance.get(this.DBKEY, data.id);
}
public dbRemove({ data }) {
return dbInstance.remove(this.DBKEY, data.doc);
}
public dbBulkDocs({ data }) {
return dbInstance.bulkDocs(this.DBKEY, data.docs);
}
public dbAllDocs({ data }) {
return dbInstance.allDocs(this.DBKEY, data.key);
}
}

View File

@@ -0,0 +1,51 @@
import defaultConfig from '@/common/constans/defaultConfig';
import DBInstance from './db';
const LOCAL_CONFIG_KEY = 'rubick-local-config';
const db = new DBInstance();
const localConfig = {
async init(): Promise<any> {
const localConfig = await db.dbGet({ data: { id: LOCAL_CONFIG_KEY } });
if (
!localConfig ||
!localConfig.data ||
localConfig.data.version !== defaultConfig.version
) {
const data: any = {
_id: LOCAL_CONFIG_KEY,
data: defaultConfig,
};
if (localConfig && localConfig.data) {
data._rev = localConfig.data._rev;
}
await db.dbPut({
data: { data },
});
}
},
async getConfig(): Promise<any> {
const data: any =
(await db.dbGet({ data: { id: LOCAL_CONFIG_KEY } })) || {};
return data.data;
},
async setConfig(data) {
const localConfig: any =
(await db.dbGet({ data: { id: LOCAL_CONFIG_KEY } })) || {};
await db.dbPut({
data: {
data: {
_id: LOCAL_CONFIG_KEY,
_rev: localConfig._rev,
data: {
...localConfig.data,
...data,
},
},
},
});
},
};
export default localConfig;

View File

@@ -9,19 +9,20 @@ import {
Notification,
} from 'electron';
import screenCapture from '@/core/screen-capture';
import localConfig from '@/main/common/initLocalConfig';
const registerHotKey = (mainWindow: BrowserWindow): void => {
// 设置开机启动
const setAutoLogin = () => {
const config = global.OP_CONFIG.get();
const setAutoLogin = async () => {
const config = await localConfig.getConfig();
app.setLoginItemSettings({
openAtLogin: config.perf.common.start,
openAsHidden: true,
});
};
// 设置暗黑模式
const setDarkMode = () => {
const config = global.OP_CONFIG.get();
const setDarkMode = async () => {
const config = await localConfig.getConfig();
const isDark = config.perf.common.darkMode;
if (isDark) {
nativeTheme.themeSource = 'dark';
@@ -46,10 +47,10 @@ const registerHotKey = (mainWindow: BrowserWindow): void => {
}
};
const init = () => {
setAutoLogin();
setDarkMode();
const config = global.OP_CONFIG.get();
const init = async () => {
await setAutoLogin();
await setDarkMode();
const config = await localConfig.getConfig();
globalShortcut.unregisterAll();
// 注册偏好快捷键
globalShortcut.register(config.perf.shortCut.showAndHidden, () => {

View File

@@ -2,7 +2,6 @@ import { dialog, Menu, Tray, app, shell, BrowserWindow } from 'electron';
import path from 'path';
import pkg from '../../../package.json';
import os from 'os';
import API from '../common/api';
import commonConst from '@/common/utils/commonConst';
import { guide } from '../browsers';
@@ -21,11 +20,6 @@ function createTray(window: BrowserWindow): Promise<Tray> {
}
const appIcon = new Tray(path.join(__static, icon));
const getShowAndHiddenHotKey = (): string => {
const config = global.OP_CONFIG.get();
return config.perf.shortCut.showAndHidden;
};
const openSettings = () => {
window.webContents.executeJavaScript(
`window.rubick && window.rubick.openMenu && window.rubick.openMenu({ code: "settings" })`
@@ -59,8 +53,7 @@ function createTray(window: BrowserWindow): Promise<Tray> {
},
{ type: 'separator' },
{
label: '显示窗口',
accelerator: getShowAndHiddenHotKey(),
label: '显示',
click() {
window.show();
},