This commit is contained in:
Vanessa 2023-06-01 21:20:25 +08:00
parent 51b4b26426
commit e28acc32ab

View file

@ -15,12 +15,11 @@
// along with this program. If not, see <https://www.gnu.org/licenses/>. // along with this program. If not, see <https://www.gnu.org/licenses/>.
const { const {
app, BrowserWindow, shell, Menu, screen, ipcMain, globalShortcut, Tray, net, app, BrowserWindow, shell, Menu, screen, ipcMain, globalShortcut, Tray,
} = require("electron"); } = require("electron");
const path = require("path"); const path = require("path");
const fs = require("fs"); const fs = require("fs");
const net = require("net"); const gNet = require("net");
const fetch = require("electron-fetch").default;
process.noAsar = true; process.noAsar = true;
const appDir = path.dirname(app.getAppPath()); const appDir = path.dirname(app.getAppPath());
const isDevEnv = process.env.NODE_ENV === "development"; const isDevEnv = process.env.NODE_ENV === "development";
@ -423,7 +422,7 @@ const initKernel = (workspace, port, lang) => {
const getAvailablePort = () => { const getAvailablePort = () => {
// https://gist.github.com/mikeal/1840641 // https://gist.github.com/mikeal/1840641
return new Promise((portResolve, portReject) => { return new Promise((portResolve, portReject) => {
const server = net.createServer(); const server = gNet.createServer();
server.on("error", error => { server.on("error", error => {
writeLog(error); writeLog(error);
kernelPort = ""; kernelPort = "";
@ -512,7 +511,7 @@ const initKernel = (workspace, port, lang) => {
writeLog("checking kernel version"); writeLog("checking kernel version");
while (!gotVersion && count < 15) { while (!gotVersion && count < 15) {
try { try {
const apiResult = await fetch(getServer() + "/api/system/version"); const apiResult = await net.fetch(getServer() + "/api/system/version");
apiData = await apiResult.json(); apiData = await apiResult.json();
gotVersion = true; gotVersion = true;
bootWindow.setResizable(false); bootWindow.setResizable(false);
@ -540,14 +539,14 @@ const initKernel = (workspace, port, lang) => {
writeLog("got kernel version [" + apiData.data + "]"); writeLog("got kernel version [" + apiData.data + "]");
if (!isDevEnv && apiData.data !== appVer) { if (!isDevEnv && apiData.data !== appVer) {
writeLog(`kernel [${apiData.data}] is running, shutdown it now and then start kernel [${appVer}]`); writeLog(`kernel [${apiData.data}] is running, shutdown it now and then start kernel [${appVer}]`);
fetch(getServer() + "/api/system/exit", {method: "POST"}); net.fetch(getServer() + "/api/system/exit", {method: "POST"});
bootWindow.destroy(); bootWindow.destroy();
resolve(false); resolve(false);
} else { } else {
let progressing = false; let progressing = false;
while (!progressing) { while (!progressing) {
try { try {
const progressResult = await fetch(getServer() + "/api/system/bootProgress"); const progressResult = await net.fetch(getServer() + "/api/system/bootProgress");
const progressData = await progressResult.json(); const progressData = await progressResult.json();
if (progressData.data.progress >= 100) { if (progressData.data.progress >= 100) {
resolve(true); resolve(true);
@ -557,7 +556,7 @@ const initKernel = (workspace, port, lang) => {
} }
} catch (e) { } catch (e) {
writeLog("get boot progress failed: " + e.message); writeLog("get boot progress failed: " + e.message);
fetch(getServer() + "/api/system/exit", {method: "POST"}); net.fetch(getServer() + "/api/system/exit", {method: "POST"});
bootWindow.destroy(); bootWindow.destroy();
resolve(false); resolve(false);
progressing = true; progressing = true;
@ -755,7 +754,7 @@ app.whenReady().then(() => {
return true; return true;
} }
}); });
await fetch(getServer(data.port) + "/api/system/uiproc?pid=" + process.pid, {method: "POST"}); await net.fetch(getServer(data.port) + "/api/system/uiproc?pid=" + process.pid, {method: "POST"});
}); });
ipcMain.on("siyuan-hotkey", (event, data) => { ipcMain.on("siyuan-hotkey", (event, data) => {
globalShortcut.unregisterAll(); globalShortcut.unregisterAll();
@ -959,9 +958,8 @@ powerMonitor.on("resume", async () => {
// 桌面端系统休眠唤醒后判断网络连通性后再执行数据同步 https://github.com/siyuan-note/siyuan/issues/6687 // 桌面端系统休眠唤醒后判断网络连通性后再执行数据同步 https://github.com/siyuan-note/siyuan/issues/6687
writeLog("system resume"); writeLog("system resume");
const eNet = require("electron").net;
const isOnline = async () => { const isOnline = async () => {
return eNet.isOnline(); return net.isOnline();
}; };
let online = false; let online = false;
for (let i = 0; i < 7; i++) { for (let i = 0; i < 7; i++) {
@ -983,7 +981,7 @@ powerMonitor.on("resume", async () => {
const currentURL = new URL(item.browserWindow.getURL()); const currentURL = new URL(item.browserWindow.getURL());
const server = getServer(currentURL.port); const server = getServer(currentURL.port);
writeLog("sync after system resume [" + server + "/api/sync/performSync" + "]"); writeLog("sync after system resume [" + server + "/api/sync/performSync" + "]");
fetch(server + "/api/sync/performSync", {method: "POST"}); net.fetch(server + "/api/sync/performSync", {method: "POST"});
}); });
}); });
@ -991,6 +989,6 @@ powerMonitor.on("shutdown", () => {
writeLog("system shutdown"); writeLog("system shutdown");
workspaces.forEach(item => { workspaces.forEach(item => {
const currentURL = new URL(item.browserWindow.getURL()); const currentURL = new URL(item.browserWindow.getURL());
fetch(getServer(currentURL.port) + "/api/system/exit", {method: "POST"}); net.fetch(getServer(currentURL.port) + "/api/system/exit", {method: "POST"});
}); });
}); });