diff --git a/app/electron/main.js b/app/electron/main.js index 13a504b37..dc4e3ba40 100644 --- a/app/electron/main.js +++ b/app/electron/main.js @@ -52,6 +52,15 @@ try { app.exit(); } +const setProxy = (proxyURL, webContents) => { + if (proxyURL.startsWith("://")) { + console.log("network proxy [system]"); + return webContents.session.setProxy({mode: "system"}); + } + console.log("network proxy [" + proxyURL + "]"); + return webContents.session.setProxy({proxyRules: proxyURL}); +}; + const hotKey2Electron = (key) => { if (!key) { return key; @@ -287,6 +296,16 @@ const boot = () => { windowStateInitialized ? currentWindow.setPosition(x, y) : currentWindow.center(); currentWindow.webContents.userAgent = "SiYuan/" + appVer + " https://b3log.org/siyuan Electron " + currentWindow.webContents.userAgent; + // set proxy + net.fetch(getServer() + "/api/system/getConf", {method: "POST"}).then((response) => { + return response.json(); + }).then((response) => { + setProxy(`${response.data.conf.system.networkProxy.scheme}://${response.data.conf.system.networkProxy.host}:${response.data.conf.system.networkProxy.port}`, currentWindow.webContents).then(() => { + // 加载主界面 + currentWindow.loadURL(getServer() + "/stage/build/app/index.html?v=" + new Date().getTime()); + }); + }); + currentWindow.webContents.session.setSpellCheckerLanguages(["en-US"]); // 发起互联网服务请求时绕过安全策略 https://github.com/siyuan-note/siyuan/issues/5516 @@ -351,9 +370,6 @@ const boot = () => { } }); - // 加载主界面 - currentWindow.loadURL(getServer() + "/stage/build/app/index.html?v=" + new Date().getTime()); - // 菜单 const productName = "SiYuan"; const template = [{ @@ -687,6 +703,9 @@ app.whenReady().then(() => { if (data.cmd === "showOpenDialog") { return dialog.showOpenDialog(data); } + if (data.cmd === "setProxy") { + return setProxy(data.proxyURL, event.sender); + } if (data.cmd === "showSaveDialog") { return dialog.showSaveDialog(data); } @@ -819,19 +838,6 @@ app.whenReady().then(() => { currentWindow.hide(); } break; - case "setProxy": - event.sender.session.closeAllConnections().then(() => { - if (data.proxyURL.startsWith("://")) { - event.sender.session.setProxy({mode: "system"}).then(() => { - console.log("network proxy [system]"); - }); - return; - } - event.sender.session.setProxy({proxyRules: data.proxyURL}).then(() => { - console.log("network proxy [" + data.proxyURL + "]"); - }); - }); - break; } }); ipcMain.on("siyuan-config-tray", (event, data) => { diff --git a/app/src/boot/onGetConfig.ts b/app/src/boot/onGetConfig.ts index e3356b41f..4d90a0203 100644 --- a/app/src/boot/onGetConfig.ts +++ b/app/src/boot/onGetConfig.ts @@ -22,7 +22,6 @@ import {showMessage} from "../dialog/message"; import {replaceLocalPath} from "../editor/rename"; import {setTabPosition} from "../window/setHeader"; import {initBar} from "../layout/topBar"; -import {setProxy} from "../config/util/about"; import {openChangelog} from "./openChangelog"; import {getIdFromSYProtocol, isSYProtocol} from "../util/pathName"; import {App} from "../index"; @@ -135,7 +134,6 @@ export const onGetConfig = (isStart: boolean, app: App) => { } }); initBar(app); - setProxy(); initStatus(); initWindow(app); appearance.onSetappearance(window.siyuan.config.appearance); diff --git a/app/src/config/about.ts b/app/src/config/about.ts index 65cb33b12..ab1873de1 100644 --- a/app/src/config/about.ts +++ b/app/src/config/about.ts @@ -4,7 +4,7 @@ import {ipcRenderer, shell} from "electron"; /// #endif import {isBrowser} from "../util/functions"; import {fetchPost} from "../util/fetch"; -import {setAccessAuthCode, setProxy} from "./util/about"; +import {setAccessAuthCode} from "./util/about"; import {exportLayout} from "../layout/util"; import {exitSiYuan, processSync} from "../dialog/processSystem"; import {isInAndroid, isInIOS, isIPad, openByMobile, writeText} from "../protyle/util/compatibility"; @@ -359,11 +359,22 @@ export const about = { const scheme = (about.element.querySelector("#aboutScheme") as HTMLInputElement).value; const host = (about.element.querySelector("#aboutHost") as HTMLInputElement).value; const port = (about.element.querySelector("#aboutPort") as HTMLInputElement).value; - fetchPost("/api/system/setNetworkProxy", {scheme, host, port}, () => { + fetchPost("/api/system/setNetworkProxy", {scheme, host, port}, async () => { window.siyuan.config.system.networkProxy.scheme = scheme; window.siyuan.config.system.networkProxy.host = host; window.siyuan.config.system.networkProxy.port = port; - setProxy(); + /// #if !BROWSER + ipcRenderer.invoke(Constants.SIYUAN_GET, { + cmd: "setProxy", + proxyURL: `${window.siyuan.config.system.networkProxy.scheme}://${window.siyuan.config.system.networkProxy.host}:${window.siyuan.config.system.networkProxy.port}`, + }).then(() => { + exportLayout({ + reload: true, + onlyData: false, + errorExit: false, + }); + }); + /// #endif }); }); } diff --git a/app/src/config/util/about.ts b/app/src/config/util/about.ts index 65e7784f9..2b916d0ed 100644 --- a/app/src/config/util/about.ts +++ b/app/src/config/util/about.ts @@ -1,19 +1,6 @@ -/// #if !BROWSER -import {ipcRenderer} from "electron"; -/// #endif import {Dialog} from "../../dialog"; import {isMobile} from "../../util/functions"; import {fetchPost} from "../../util/fetch"; -import {Constants} from "../../constants"; - -export const setProxy = () => { - /// #if !BROWSER - ipcRenderer.send(Constants.SIYUAN_CMD, { - cmd: "setProxy", - proxyURL: `${window.siyuan.config.system.networkProxy.scheme}://${window.siyuan.config.system.networkProxy.host}:${window.siyuan.config.system.networkProxy.port}` - }); - /// #endif -}; export const setAccessAuthCode = () => { const dialog = new Dialog({ diff --git a/app/src/mobile/util/setEmpty.ts b/app/src/mobile/util/setEmpty.ts index 564819fd2..6eb97f009 100644 --- a/app/src/mobile/util/setEmpty.ts +++ b/app/src/mobile/util/setEmpty.ts @@ -77,7 +77,7 @@ export const setEmpty = (app: App) => { }; export const setEditor = () => { - const toolbarNameElement = document.getElementById("toolbarName") as HTMLInputElement + const toolbarNameElement = document.getElementById("toolbarName") as HTMLInputElement; setTitle(toolbarNameElement.value); toolbarNameElement.classList.remove("fn__hidden"); document.getElementById("editor").classList.remove("fn__none"); diff --git a/app/src/protyle/export/util.ts b/app/src/protyle/export/util.ts index 7a1a3b1b8..c51f667e0 100644 --- a/app/src/protyle/export/util.ts +++ b/app/src/protyle/export/util.ts @@ -94,17 +94,17 @@ id="preview"> // https://github.com/siyuan-note/siyuan/issues/9685 previewElement.querySelectorAll('[data-type~="mark"]').forEach((markItem: HTMLElement) => { markItem.childNodes.forEach((item) => { - let spanHTML = "" + let spanHTML = ""; Array.from(item.textContent).forEach(str => { - spanHTML += `${str}` - }) + spanHTML += `${str}`; + }); const templateElement = document.createElement("template"); templateElement.innerHTML = spanHTML; item.after(templateElement.content); item.remove(); - }) + }); if (markItem.childNodes.length > 0) { - markItem.setAttribute("data-type", markItem.getAttribute("data-type").replace("mark", "")) + markItem.setAttribute("data-type", markItem.getAttribute("data-type").replace("mark", "")); } }); previewElement.setAttribute("data-doc-type", response.data.type || "NodeDocument"); diff --git a/app/src/protyle/render/av/select.ts b/app/src/protyle/render/av/select.ts index 4c6ac8818..c9d4c7f37 100644 --- a/app/src/protyle/render/av/select.ts +++ b/app/src/protyle/render/av/select.ts @@ -121,7 +121,7 @@ export const setColOption = (protyle: IProtyle, data: IAV, target: HTMLElement, if (name === inputElement.value || !inputElement.value) { return; } - let hasName = false + let hasName = false; data.view.columns.find(column => { if (column.id === colId) { column.options.find((item) => { diff --git a/app/src/protyle/render/blockRender.ts b/app/src/protyle/render/blockRender.ts index 9eb17def3..c04c2058d 100644 --- a/app/src/protyle/render/blockRender.ts +++ b/app/src/protyle/render/blockRender.ts @@ -60,7 +60,7 @@ export const blockRender = (protyle: IProtyle, element: Element, top?: number) = } }).catch(() => { renderEmbed([], protyle, item, top); - }) + }); } else if (Array.isArray(includeIDs)) { fetchPost("/api/search/getEmbedBlock", { embedBlockID: item.getAttribute("data-node-id"), @@ -85,7 +85,7 @@ export const blockRender = (protyle: IProtyle, element: Element, top?: number) = excludeIDs: [item.getAttribute("data-node-id"), protyle.block.rootID], breadcrumb }, (response) => { - renderEmbed(response.data.blocks, protyle, item, top) + renderEmbed(response.data.blocks, protyle, item, top); }); } }); @@ -135,4 +135,4 @@ const renderEmbed = (blocks: { }); } item.style.height = ""; -} +};