Skip to content

Commit fbae4ce

Browse files
authored
Add files via upload
1 parent c9a67ee commit fbae4ce

2 files changed

Lines changed: 42 additions & 13 deletions

File tree

frontend/js/main.js

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { showApiKeyModal, closeApiKeyModal, togglePasswordVisibility, saveApiKey
1010
initQuickFilters, toggleFilters, toggleFilter, updateFilterOperator, updateFilterInput, removeFilter, clearAllFilters, getFilterQuery,
1111
restoreFiltersFromData,
1212
exportConfigToFile, importConfigFromFile, toggleAdvanced, setSearchButtonUpdater,
13-
showSettingsModal, closeSettingsModal, saveSettingsApiKey, toggleSettingsPassword, saveProxySettings, toggleProxyEnabled,
13+
showSettingsModal, closeSettingsModal, saveSettingsApiKey, toggleSettingsPassword, saveProxySettings, toggleProxyEnabled, restoreProxyOnStartup,
1414
resetUserAgent, saveRequestConfig, renderLogViewer, clearDiagnosticLogs, exportDiagnosticLogs } from './ui.js';
1515
import { doSearch, showSuggestions, hideSuggestions, handleInputChange, fetchResults, updateSearchButtonState } from './search.js';
1616
import { sortTable, goToPage, downloadCurrentPage, downloadAllPages, closeDownloadModal, startDownload, hideDownloadProgress, copyColumn, setFetchResults } from './results.js';
@@ -836,19 +836,17 @@ document.addEventListener('DOMContentLoaded', async () => {
836836
try {
837837
state.apiBaseUrl = await initTauriBridge();
838838

839-
// 恢复上次保存的代理配置到 Rust 侧(解决重启后代理不生效的问题
839+
// 恢复上次保存的代理配置到 Rust 侧(仅在代理启用时恢复
840840
if (isTauri()) {
841-
const { setProxyConfig, setRequestConfig } = await import('./tauri-bridge.js');
842-
const savedHost = localStorage.getItem(STORAGE_KEYS.proxyHost) || '';
843-
const savedPort = parseInt(localStorage.getItem(STORAGE_KEYS.proxyPort)) || 0;
844-
const savedUser = localStorage.getItem(STORAGE_KEYS.proxyUsername) || '';
845-
const savedPass = localStorage.getItem(STORAGE_KEYS.proxyPassword) || '';
846-
if (savedHost && savedPort) {
847-
try {
848-
await setProxyConfig(savedHost, savedPort, savedUser, savedPass);
849-
console.log('[Init] Proxy config restored:', savedHost, savedPort);
850-
logInfo('proxy', '启动时恢复代理配置成功', { host: savedHost, port: savedPort, usernamePresent: !!savedUser, passwordPresent: !!savedPass });
851-
} catch (e) { console.warn('[Init] Failed to restore proxy config:', e); logWarn('proxy', '启动时恢复代理配置失败', { message: e.message || String(e) }); }
841+
const { setRequestConfig } = await import('./tauri-bridge.js');
842+
try {
843+
const proxyResult = await restoreProxyOnStartup();
844+
if (proxyResult.restored) {
845+
console.log('[Init] Proxy config restored:', proxyResult.host, proxyResult.port);
846+
} else {
847+
console.log('[Init] Proxy not restored:', proxyResult.reason);
848+
}
849+
} catch (e) { console.warn('[Init] Failed to restore proxy config:', e); logWarn('proxy', '启动时恢复代理配置失败', { message: e.message || String(e) }); }
852850
}
853851

854852
// 恢复请求配置(User-Agent + 自定义 Headers)

frontend/js/ui.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,37 @@ export async function saveProxySettings() {
252252
}
253253
}
254254

255+
/**
256+
* 启动时恢复代理配置到 Rust 侧
257+
* 读取 localStorage 中的 proxyEnabled 标志,只在启用时才恢复代理
258+
* @returns {Promise<{restored: boolean, host?: string, port?: number, reason?: string}>}
259+
*/
260+
export async function restoreProxyOnStartup() {
261+
const savedHost = localStorage.getItem(STORAGE_KEYS.proxyHost) || '';
262+
const savedPort = parseInt(localStorage.getItem(STORAGE_KEYS.proxyPort)) || 0;
263+
264+
// 无配置:host 或 port 缺失
265+
if (!savedHost || !savedPort) {
266+
return { restored: false, reason: 'no-config' };
267+
}
268+
269+
// 检查代理开关状态(无键时默认启用,向后兼容旧版本)
270+
const enabledRaw = localStorage.getItem(STORAGE_KEYS.proxyEnabled);
271+
const proxyEnabled = enabledRaw !== 'false';
272+
273+
if (!proxyEnabled) {
274+
return { restored: false, reason: 'disabled' };
275+
}
276+
277+
const savedUser = localStorage.getItem(STORAGE_KEYS.proxyUsername) || '';
278+
const savedPass = localStorage.getItem(STORAGE_KEYS.proxyPassword) || '';
279+
280+
await setProxyConfig(savedHost, savedPort, savedUser, savedPass);
281+
logInfo('proxy', '启动时恢复代理配置成功', { host: savedHost, port: savedPort, usernamePresent: !!savedUser, passwordPresent: !!savedPass });
282+
283+
return { restored: true, host: savedHost, port: savedPort };
284+
}
285+
255286
/**
256287
* 代理开关联动:启用/禁用输入框和保存按钮文字
257288
* @param {boolean} enabled - 是否启用代理

0 commit comments

Comments
 (0)