diff --git a/src/main/tool-handlers-system.ts b/src/main/tool-handlers-system.ts index 843c7d7..a44a9a3 100644 --- a/src/main/tool-handlers-system.ts +++ b/src/main/tool-handlers-system.ts @@ -455,7 +455,8 @@ async function handleWebSearchSearxng( const safesearch = getSetting('searxng_safesearch', 1); const cfgTimeRange = getSetting('searxng_time_range', ''); const effectiveTimeRange = timeRange || cfgTimeRange; - const cfgMaxResults = getSetting('searxng_max_results', 20); + const cfgMaxResults = getSetting('searxng_max_results', 0); + const effectiveMax = cfgMaxResults > 0 ? cfgMaxResults : maxResults; const format = getSetting('searxng_format', 'json'); const isHtml = format === 'html'; @@ -488,8 +489,8 @@ async function handleWebSearchSearxng( if (isHtml) { const html = await resp.text(); const text = htmlToText(html); - const truncated = cfgMaxResults > 0 && text.length > cfgMaxResults * 500; - const content = truncated ? text.slice(0, cfgMaxResults * 500) + '\n...(已截断)' : text; + const truncated = effectiveMax > 0 && text.length > effectiveMax * 500; + const content = truncated ? text.slice(0, effectiveMax * 500) + '\n...(已截断)' : text; sendLog('success', `🔍 SearXNG HTML 完成`, `${text.length} 字符`); return { success: true, @@ -517,7 +518,7 @@ async function handleWebSearchSearxng( unresponsive_engines?: Array<[string, string]>; }; - const rawResults = (data.results || []).slice(0, cfgMaxResults); + const rawResults = (data.results || []).slice(0, effectiveMax); if (rawResults.length === 0) { return { success: false, error: 'SearXNG 未返回任何结果,请尝试其他关键词或调整搜索引擎配置' }; } @@ -553,7 +554,7 @@ async function handleWebSearchSearxng( weight: 80, reachable: true, })), - cfgMaxResults, + effectiveMax, false, engineStats ); diff --git a/src/renderer/components/searxng-modal.ts b/src/renderer/components/searxng-modal.ts index 4bbe94f..5f1ff44 100644 --- a/src/renderer/components/searxng-modal.ts +++ b/src/renderer/components/searxng-modal.ts @@ -15,7 +15,7 @@ const DEFAULTS = { language: 'zh-CN', safesearch: 1, time_range: '', - max_results: 20, + max_results: 0, auth_key: '', format: 'json', }; @@ -61,7 +61,7 @@ function syncFormFromConfig(): void { (document.querySelector('#searxngLanguage') as HTMLSelectElement).value = searxngConfig.language; (document.querySelector('#searxngSafeSearch') as HTMLSelectElement).value = String(searxngConfig.safesearch); (document.querySelector('#searxngTimeRange') as HTMLSelectElement).value = searxngConfig.time_range || ''; - (document.querySelector('#searxngMaxResults') as HTMLInputElement).value = String(searxngConfig.max_results); + (document.querySelector('#searxngMaxResults') as HTMLInputElement).value = searxngConfig.max_results > 0 ? String(searxngConfig.max_results) : ''; (document.querySelector('#searxngAuthKey') as HTMLInputElement).value = searxngConfig.auth_key; (document.querySelector('#searxngFormat') as HTMLSelectElement).value = searxngConfig.format; const toggle = document.querySelector('#toggleSearxngEnabled') as HTMLInputElement; @@ -134,7 +134,7 @@ export function initSearxngModal(): void { searxngConfig.language = (document.querySelector('#searxngLanguage') as HTMLSelectElement).value; searxngConfig.safesearch = parseInt((document.querySelector('#searxngSafeSearch') as HTMLSelectElement).value); searxngConfig.time_range = (document.querySelector('#searxngTimeRange') as HTMLSelectElement).value; - searxngConfig.max_results = parseInt((document.querySelector('#searxngMaxResults') as HTMLInputElement).value) || 20; + searxngConfig.max_results = parseInt((document.querySelector('#searxngMaxResults') as HTMLInputElement).value) || 0; searxngConfig.auth_key = (document.querySelector('#searxngAuthKey') as HTMLInputElement).value.trim(); searxngConfig.format = (document.querySelector('#searxngFormat') as HTMLSelectElement).value; const db = state.get(KEYS.DB); diff --git a/src/renderer/index.html b/src/renderer/index.html index 63c46dc..cbef210 100644 --- a/src/renderer/index.html +++ b/src/renderer/index.html @@ -774,7 +774,7 @@
- +