mirror of
https://github.com/rubickCenter/rubick
synced 2025-12-31 08:20:07 +08:00
♻️ 修改系统设置存储方式
This commit is contained in:
@@ -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
28
src/main/common/db.ts
Normal 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);
|
||||
}
|
||||
}
|
||||
51
src/main/common/initLocalConfig.ts
Normal file
51
src/main/common/initLocalConfig.ts
Normal 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;
|
||||
@@ -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, () => {
|
||||
|
||||
@@ -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();
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user