From 2ca0a62efa032cac1a82a0dc78502d1c18508f5e Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Fri, 21 Mar 2025 11:26:45 +0800 Subject: [PATCH] feat: update ESLint config and add socks-proxy-agent dependency - Added 'local/**' to ESLint ignores - Included 'socks-proxy-agent' package in dependencies - Refactored download function to improve readability and maintainability - Cleaned up unused code in messages state management --- eslint.config.mjs | 2 +- package.json | 1 + resources/scripts/download.js | 32 ++++---- src/main/index.ts | 2 +- .../settings/DataSettings/WebDavSettings.tsx | 78 +++++++++---------- src/renderer/src/store/messages.ts | 40 +--------- yarn.lock | 1 + 7 files changed, 61 insertions(+), 95 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 72775324..a196af52 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -53,6 +53,6 @@ export default defineConfig([ } ], { - ignores: ['node_modules/**', 'dist/**', 'out/**', '.gitignore', 'scripts/cloudflare-worker.js'] + ignores: ['node_modules/**', 'dist/**', 'out/**', 'local/**', '.gitignore', 'scripts/cloudflare-worker.js'] } ]) diff --git a/package.json b/package.json index 1716cc92..6dcc69a3 100644 --- a/package.json +++ b/package.json @@ -85,6 +85,7 @@ "npx-scope-finder": "^1.2.0", "officeparser": "^4.1.1", "p-queue": "^8.1.0", + "socks-proxy-agent": "^8.0.3", "tar": "^7.4.3", "tokenx": "^0.4.1", "undici": "^7.4.0", diff --git a/resources/scripts/download.js b/resources/scripts/download.js index cc97f1df..270f8cbe 100644 --- a/resources/scripts/download.js +++ b/resources/scripts/download.js @@ -16,21 +16,23 @@ async function downloadWithRedirects(url, destinationPath) { const proxyAgent = new SocksProxyAgent(proxyUrl) return new Promise((resolve, reject) => { const request = (url) => { - https.get(url, { agent: proxyAgent }, (response) => { - if (response.statusCode == 301 || response.statusCode == 302) { - request(response.headers.location) - return - } - if (response.statusCode !== 200) { - reject(new Error(`Download failed: ${response.statusCode} ${response.statusMessage}`)) - return - } - const file = fs.createWriteStream(destinationPath) - response.pipe(file) - file.on('finish', () => resolve()) - }).on('error', (err) => { - reject(err) - }) + https + .get(url, { agent: proxyAgent }, (response) => { + if (response.statusCode == 301 || response.statusCode == 302) { + request(response.headers.location) + return + } + if (response.statusCode !== 200) { + reject(new Error(`Download failed: ${response.statusCode} ${response.statusMessage}`)) + return + } + const file = fs.createWriteStream(destinationPath) + response.pipe(file) + file.on('finish', () => resolve()) + }) + .on('error', (err) => { + reject(err) + }) } request(url) }) diff --git a/src/main/index.ts b/src/main/index.ts index e4a1e18b..907ef2b6 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -1,6 +1,6 @@ import { electronApp, optimizer } from '@electron-toolkit/utils' -import { app, ipcMain } from 'electron' import { replaceDevtoolsFont } from '@main/utils/windowUtil' +import { app, ipcMain } from 'electron' import installExtension, { REDUX_DEVTOOLS } from 'electron-devtools-installer' import { registerIpc } from './ipc' diff --git a/src/renderer/src/pages/settings/DataSettings/WebDavSettings.tsx b/src/renderer/src/pages/settings/DataSettings/WebDavSettings.tsx index e0e7487b..08fe07ea 100644 --- a/src/renderer/src/pages/settings/DataSettings/WebDavSettings.tsx +++ b/src/renderer/src/pages/settings/DataSettings/WebDavSettings.tsx @@ -262,46 +262,46 @@ const WebDavSettings: FC = () => { )} - <> - - setCustomFileName(e.target.value)} - placeholder={t('settings.data.webdav.backup.modal.filename.placeholder')} - /> - - - setIsRestoreModalVisible(false)} - okButtonProps={{ loading: restoring }} - width={600}> -
- setCustomFileName(e.target.value)} + placeholder={t('settings.data.webdav.backup.modal.filename.placeholder')} /> - {loadingFiles && ( -
- -
- )} -
-
- + + + setIsRestoreModalVisible(false)} + okButtonProps={{ loading: restoring }} + width={600}> +
+