修改部分不规范的命名,优化部分可简化的代码

This commit is contained in:
tcsnzh
2021-10-04 16:46:18 +08:00
parent 960b16bb4c
commit 60b1138dd8
10 changed files with 335 additions and 319 deletions

View File

@@ -1,15 +1,16 @@
const { BrowserWindow, protocol } = require("electron")
const { BrowserWindow, protocol } = require("electron");
module.exports = () => {
let win
let win;
let init = (opts) => {
createWindow(opts)
}
createWindow(opts);
};
let createWindow = (opts) => {
const winURL = process.env.NODE_ENV === 'development'
? `http://localhost:9080`
: `file://${__dirname}/index.html`
const winURL =
process.env.NODE_ENV === "development"
? `http://localhost:9080`
: `file://${__dirname}/index.html`;
win = new BrowserWindow({
height: 60,
@@ -17,7 +18,7 @@ module.exports = () => {
resizable: true,
width: 800,
frame: false,
title: '拉比克',
title: "拉比克",
show: false,
skipTaskbar: true,
webPreferences: {
@@ -26,31 +27,35 @@ module.exports = () => {
backgroundThrottling: false,
contextIsolation: false,
webviewTag: true,
nodeIntegration: true // 在网页中集成Node
nodeIntegration: true, // 在网页中集成Node
},
});
win.loadURL(winURL);
protocol.interceptFileProtocol(
"image",
(req, callback) => {
const url = req.url.substr(8);
callback(decodeURI(url));
},
(error) => {
if (error) {
console.error("Failed to register protocol");
}
}
})
);
win.loadURL(winURL)
protocol.interceptFileProtocol('image', (req, callback) => {
const url = req.url.substr(8)
callback(decodeURI(url))
}, (error) => {
if (error) {
console.error('Failed to register protocol')
}
})
win.once('ready-to-show', () => win.show())
win.once("ready-to-show", () => win.show());
win.on("closed", () => {
win = undefined
})
}
win = undefined;
});
};
let getWindow = () => win
let getWindow = () => win;
return {
init: init,
getWindow: getWindow,
}
}
init,
getWindow,
};
};

View File

@@ -1,13 +1,13 @@
const { BrowserWindow, nativeImage } = require("electron")
const { BrowserWindow, nativeImage } = require("electron");
module.exports = () => {
let win
let win;
let init = (x, y) => {
if (win === null || win === undefined) {
createWindow()
createWindow();
}
}
};
let createWindow = () => {
win = new BrowserWindow({
@@ -25,18 +25,18 @@ module.exports = () => {
contextIsolation: false,
devTools: false,
},
})
});
win.loadURL(`file://${__static}/plugins/picker/index.html`)
win.loadURL(`file://${__static}/plugins/picker/index.html`);
win.on("closed", () => {
win = undefined
})
}
win = undefined;
});
};
let getWindow = () => win
let getWindow = () => win;
return {
init: init,
getWindow: getWindow,
}
}
init,
getWindow,
};
};

View File

@@ -1,22 +1,23 @@
const { BrowserWindow } = require("electron")
const { BrowserWindow } = require("electron");
module.exports = () => {
let win
let win;
let init = (opts) => {
createWindow(opts)
}
createWindow(opts);
};
let createWindow = (opts) => {
const winURL = process.env.NODE_ENV === 'development'
? `http://localhost:9080/#/plugin`
: `${__dirname}/index.html`
const winURL =
process.env.NODE_ENV === "development"
? `http://localhost:9080/#/plugin`
: `${__dirname}/index.html`;
win = new BrowserWindow({
height: 600,
useContentSize: true,
width: 800,
titleBarStyle: 'hiddenInset',
title: '拉比克',
titleBarStyle: "hiddenInset",
title: "拉比克",
show: false,
webPreferences: {
webSecurity: false,
@@ -24,26 +25,30 @@ module.exports = () => {
backgroundThrottling: false,
contextIsolation: false,
webviewTag: true,
nodeIntegration: true // 在网页中集成Node
}
})
process.env.NODE_ENV === 'development' ? win.loadURL(winURL) : win.loadFile(winURL, {
hash: `#/plugin`,
})
nodeIntegration: true, // 在网页中集成Node
},
});
process.env.NODE_ENV === "development"
? win.loadURL(winURL)
: win.loadFile(winURL, {
hash: `#/plugin`,
});
win.webContents.executeJavaScript(`window.setPluginInfo(${opts})`).then(() => {
win.show()
})
win.webContents
.executeJavaScript(`window.setPluginInfo(${opts})`)
.then(() => {
win.show();
});
win.on("closed", () => {
win = undefined
})
}
win = undefined;
});
};
let getWindow = () => win
let getWindow = () => win;
return {
init: init,
getWindow: getWindow,
}
}
init,
getWindow,
};
};

View File

@@ -6,14 +6,14 @@ module.exports = () => {
let init = (mainWindow) => {
if (win === null || win === undefined) {
createWindow();
ipcMain.on('superPanel-hidden', () => {
ipcMain.on("superPanel-hidden", () => {
win.hide();
});
ipcMain.on('superPanel-setSize', (e, height) => {
ipcMain.on("superPanel-setSize", (e, height) => {
win.setSize(250, height);
});
ipcMain.on('superPanel-openPlugin', (e, args) => {
mainWindow.webContents.send('superPanel-openPlugin', args);
ipcMain.on("superPanel-openPlugin", (e, args) => {
mainWindow.webContents.send("superPanel-openPlugin", args);
});
}
};
@@ -39,7 +39,7 @@ module.exports = () => {
win = undefined;
});
// 打包后,失焦隐藏
win.on('blur', () => {
win.on("blur", () => {
win.hide();
});
};
@@ -47,7 +47,7 @@ module.exports = () => {
let getWindow = () => win;
return {
init: init,
getWindow: getWindow,
init,
getWindow,
};
};

View File

@@ -1,109 +1,73 @@
import path from "path"
import fs from 'fs'
import { getlocalDataFile } from "./utils"
import os from 'os'
import path from "path";
import fs from "fs";
import { getLocalDataFile } from "./utils";
import os from "os";
const configPath = path.join(getlocalDataFile(), './rubick-config.json')
const configPath = path.join(getLocalDataFile(), "./rubick-config.json");
const defaultConfigForAnyPlatform = {
version: 3,
perf: {
shortCut: {
showAndHidden: "Option+R",
separate: "Ctrl+D",
quit: "Shift+Escape",
},
common: {
start: true,
space: true,
},
local: {
search: true,
},
},
superPanel: {
baiduAPI: {
key: "",
appid: "",
},
mouseDownTime: 500,
},
global: [],
};
let defaultConfig = {
Darwin: {
version: 3,
perf: {
shortCut: {
showAndHidden: 'Option+R',
separate: 'Ctrl+D',
quit: 'Shift+Escape'
},
common: {
start: true,
space: true,
},
local: {
search: true,
}
},
superPanel: {
baiduAPI: {
key: '',
appid: '',
},
mouseDownTime: 500
},
global: []
...defaultConfigForAnyPlatform,
},
Windows_NT: {
version: 3,
perf: {
shortCut: {
showAndHidden: 'Option+R',
separate: 'Ctrl+D',
quit: 'Shift+Escape'
},
common: {
start: true,
space: true,
},
local: {
search: true,
}
},
superPanel: {
baiduAPI: {
key: '',
appid: '',
},
mouseDownTime: 500
},
global: []
...defaultConfigForAnyPlatform,
},
Linux: {
version: 3,
perf: {
shortCut: {
showAndHidden: 'Option+R',
separate: 'Ctrl+D',
quit: 'Shift+Escape'
},
common: {
start: true,
space: true,
},
local: {
search: true,
}
},
superPanel: {
baiduAPI: {
key: '',
appid: '',
},
mouseDownTime: 500
},
global: []
}
}
...defaultConfigForAnyPlatform,
},
};
global.opConfig = {
config: null,
get() {
const platform = os.type();
try {
if (!opConfig.config) {
opConfig.config = JSON.parse(fs.readFileSync(configPath) || JSON.stringify(defaultConfig[platform]))
opConfig.config = JSON.parse(
fs.readFileSync(configPath) || JSON.stringify(defaultConfig[platform])
);
}
// 重置
if (!opConfig.config.version || opConfig.config.version < defaultConfig[platform].version) {
opConfig.config = defaultConfig[platform]
fs.writeFileSync(configPath, JSON.stringify(opConfig.config))
if (
!opConfig.config.version ||
opConfig.config.version < defaultConfig[platform].version
) {
opConfig.config = defaultConfig[platform];
fs.writeFileSync(configPath, JSON.stringify(opConfig.config));
}
return opConfig.config
return opConfig.config;
} catch (e) {
opConfig.config = defaultConfig[platform]
return opConfig.config
opConfig.config = defaultConfig[platform];
return opConfig.config;
}
},
set(key, value) {
opConfig.config[key] = value;
fs.writeFileSync(configPath, JSON.stringify(opConfig.config))
}
}
fs.writeFileSync(configPath, JSON.stringify(opConfig.config));
},
};

View File

@@ -1,6 +1,6 @@
import fs from "fs";
export const getlocalDataFile = () => {
export const getLocalDataFile = () => {
let localDataFile = process.env.HOME;
if (!localDataFile) {
localDataFile = process.env.LOCALAPPDATA;
@@ -14,13 +14,13 @@ export function saveData(path, value) {
export function getData(path, defaultValue) {
try {
return JSON.parse(fs.readFileSync(path, 'utf8'));
return JSON.parse(fs.readFileSync(path, "utf8"));
} catch (e) {
return defaultValue || undefined;
}
}
export function throttle (func, wait, options) {
export function throttle(func, wait, options) {
let context, args, result;
let timeout = null;
let previous = 0;
@@ -54,21 +54,19 @@ export function throttle (func, wait, options) {
}
export const commonConst = {
linux: function () {
return process.platform === 'linux'
linux: function() {
return process.platform === "linux";
},
macOS () {
return process.platform === 'darwin';
macOS() {
return process.platform === "darwin";
},
windows () {
return process.platform === 'win32'
windows() {
return process.platform === "win32";
},
production: function () {
return process.env.NODE_ENV !== 'development';
production: function() {
return process.env.NODE_ENV !== "development";
},
dev: function () {
return process.env.NODE_ENV === 'development';
dev: function() {
return process.env.NODE_ENV === "development";
},
}
};

View File

@@ -2,7 +2,7 @@
<div @mousedown="drag">
<a-layout id="components-layout">
<div v-if="!searchType" class="rubick-select">
<div class="tag-container" v-if="selected">
<div v-if="selected" class="tag-container">
<a-tag
:key="selected.key"
@close="closeTag"
@@ -59,7 +59,7 @@
</div>
</div>
</a-input>
<div class="options" v-show="showOptions">
<div v-show="showOptions" class="options">
<a-list item-layout="horizontal" :data-source="options">
<a-list-item
@click="() => item.click($router)"
@@ -81,7 +81,7 @@
</a-list>
</div>
</div>
<div class="rubick-select-subMenu" v-else>
<div v-else class="rubick-select-subMenu">
<div>
<img
class="icon-tool-sub"

View File

@@ -1,13 +1,21 @@
import { WINDOW_MAX_HEIGHT, WINDOW_MIN_HEIGHT, PRE_ITEM_HEIGHT, SYSTEM_PLUGINS } from './constans';
import path from 'path';
import fs from 'fs';
import Store from 'electron-store';
import downloadFile from 'download';
import { ipcRenderer } from 'electron';
import { getlocalDataFile } from '../../../main/common/utils';
import shell from 'shelljs';
import {
WINDOW_MAX_HEIGHT,
WINDOW_MIN_HEIGHT,
PRE_ITEM_HEIGHT,
SYSTEM_PLUGINS,
} from "./constans";
import path from "path";
import fs from "fs";
import Store from "electron-store";
import downloadFile from "download";
import { ipcRenderer } from "electron";
import { getLocalDataFile } from "../../../main/common/utils";
import shell from "shelljs";
const getApp = process.platform === 'win32' ? require('./win-app').getApp : require('./darwin-app').getApp;
const getApp =
process.platform === "win32"
? require("./win-app").getApp
: require("./darwin-app").getApp;
const store = new Store();
@@ -17,14 +25,16 @@ const fileLists = getApp.fileLists;
function getWindowHeight(searchList) {
if (!searchList) return WINDOW_MAX_HEIGHT;
if (!searchList.length) return WINDOW_MIN_HEIGHT;
return searchList.length * PRE_ITEM_HEIGHT + WINDOW_MIN_HEIGHT + 5 > WINDOW_MAX_HEIGHT
return searchList.length * PRE_ITEM_HEIGHT + WINDOW_MIN_HEIGHT + 5 >
WINDOW_MAX_HEIGHT
? WINDOW_MAX_HEIGHT
: searchList.length * PRE_ITEM_HEIGHT + WINDOW_MIN_HEIGHT + 5;
}
function searchKeyValues(lists, value) {
return lists.filter((item) => {
if (typeof item === 'string') return item.toLowerCase().indexOf(value.toLowerCase()) >= 0;
if (typeof item === "string")
return item.toLowerCase().indexOf(value.toLowerCase()) >= 0;
return item.type.toLowerCase().indexOf(value.toLowerCase()) >= 0;
});
}
@@ -41,7 +51,7 @@ function existOrNot(path) {
});
}
const appPath = getlocalDataFile();
const appPath = getLocalDataFile();
async function downloadZip(downloadRepoUrl, name) {
try {
@@ -50,7 +60,7 @@ async function downloadZip(downloadRepoUrl, name) {
const temp_dest = `${plugin_path}/${name}`;
// 下载模板
if (await existOrNot(temp_dest)) {
shell.rm('-rf', temp_dest);
shell.rm("-rf", temp_dest);
}
await downloadFile(downloadRepoUrl, plugin_path, { extract: true });
@@ -63,7 +73,7 @@ async function downloadZip(downloadRepoUrl, name) {
const sysFile = {
savePlugins(plugins) {
ipcRenderer.send('optionPlugin', {
ipcRenderer.send("optionPlugin", {
plugins: plugins.filter((plugin) => {
let hasOption = false;
plugin.features.forEach((fe) => {
@@ -74,20 +84,20 @@ const sysFile = {
});
});
return hasOption;
})
}),
});
store.set('user-plugins', plugins);
store.set("user-plugins", plugins);
},
getUserPlugins() {
try {
return store.get('user-plugins');
return store.get("user-plugins");
} catch (e) {
return [];
}
},
removeAllPlugins() {
store.delete('user-plugins');
}
store.delete("user-plugins");
},
};
function mergePlugins(plugins) {
@@ -97,10 +107,10 @@ function mergePlugins(plugins) {
return {
...plugin,
status: true,
sourceFile: '',
type: 'system'
sourceFile: "",
type: "system",
};
})
}),
];
const target = [];
@@ -108,7 +118,7 @@ function mergePlugins(plugins) {
result.forEach((item, i) => {
let targetIndex = -1;
target.forEach((tg, j) => {
if (tg.tag === item.tag && tg.type === 'system') {
if (tg.tag === item.tag && tg.type === "system") {
targetIndex = j;
}
});
@@ -117,7 +127,7 @@ function mergePlugins(plugins) {
}
});
ipcRenderer &&
ipcRenderer.send('optionPlugin', {
ipcRenderer.send("optionPlugin", {
plugins: target.filter((plugin) => {
let hasOption = false;
plugin.features.forEach((fe) => {
@@ -128,25 +138,25 @@ function mergePlugins(plugins) {
});
});
return hasOption;
})
}),
});
ipcRenderer &&
ipcRenderer.send('pluginInit', {
plugins: target
});
ipcRenderer.send("pluginInit", {
plugins: target,
});
return target;
}
function find(p, target = 'plugin.json') {
function find(p, target = "plugin.json") {
try {
let result;
const fileList = fs.readdirSync(p);
for (let i = 0; i < fileList.length; i++) {
let thisPath = p + '/' + fileList[i];
let thisPath = p + "/" + fileList[i];
const data = fs.statSync(thisPath);
if (data.isFile() && fileList[i] === target) {
result = path.join(thisPath, '../');
result = path.join(thisPath, "../");
return result;
}
if (data.isDirectory()) {
@@ -172,4 +182,13 @@ function debounce(fn, delay) {
};
}
export { getWindowHeight, searchKeyValues, sysFile, mergePlugins, find, downloadZip, fileLists, debounce };
export {
getWindowHeight,
searchKeyValues,
sysFile,
mergePlugins,
find,
downloadZip,
fileLists,
debounce,
};