fix: SearXNG API 地址改为必填,保存时校验格式
This commit is contained in:
@@ -446,7 +446,10 @@ async function handleWebSearchSearxng(
|
||||
timeRange: string,
|
||||
_enhanceSnippets: boolean
|
||||
): Promise<ToolResult> {
|
||||
const url = getSetting<string>('searxng_url', 'https://search.metona.cn');
|
||||
const url = getSetting<string>('searxng_url', '');
|
||||
if (!url) {
|
||||
return { success: false, error: 'SearXNG API 地址未配置。请在 SearXNG 设置中填写 API 地址。' };
|
||||
}
|
||||
const engines = getSetting<string>('searxng_engines', 'google,bing,duckduckgo,wikipedia');
|
||||
const language = getSetting<string>('searxng_language', 'zh-CN');
|
||||
const safesearch = getSetting<number>('searxng_safesearch', 1);
|
||||
|
||||
@@ -10,7 +10,7 @@ import { logInfo, logSuccess } from '../services/log-service.js';
|
||||
/** 默认 SearXNG 配置 */
|
||||
const DEFAULTS = {
|
||||
enabled: false,
|
||||
url: 'https://search.metona.cn',
|
||||
url: '',
|
||||
engines: 'google,bing,duckduckgo,wikipedia',
|
||||
language: 'zh-CN',
|
||||
safesearch: 1,
|
||||
@@ -113,7 +113,19 @@ export function initSearxngModal(): void {
|
||||
|
||||
// ── 保存按钮 ──
|
||||
document.querySelector('#btnSaveSearxng')!.addEventListener('click', async () => {
|
||||
searxngConfig.url = (document.querySelector('#searxngUrl') as HTMLInputElement).value.trim();
|
||||
const url = (document.querySelector('#searxngUrl') as HTMLInputElement).value.trim();
|
||||
if (!url) {
|
||||
const { showToast } = await import('./toast.js');
|
||||
showToast('SearXNG API 地址不能为空', 'error');
|
||||
return;
|
||||
}
|
||||
if (!/^https?:\/\/.+/.test(url)) {
|
||||
const { showToast } = await import('./toast.js');
|
||||
showToast('SearXNG API 地址格式不正确,需以 http:// 或 https:// 开头', 'error');
|
||||
return;
|
||||
}
|
||||
|
||||
searxngConfig.url = url;
|
||||
searxngConfig.engines = (document.querySelector('#searxngEngines') as HTMLInputElement).value.trim();
|
||||
searxngConfig.language = (document.querySelector('#searxngLanguage') as HTMLSelectElement).value;
|
||||
searxngConfig.safesearch = parseInt((document.querySelector('#searxngSafeSearch') as HTMLSelectElement).value);
|
||||
|
||||
@@ -732,7 +732,7 @@
|
||||
|
||||
<div class="setting-group">
|
||||
<label class="setting-label">SearXNG API 地址</label>
|
||||
<input class="setting-input" id="searxngUrl" type="url" placeholder="https://search.metona.cn" style="margin-bottom:6px;">
|
||||
<input class="setting-input" id="searxngUrl" type="url" placeholder="https://search.metona.cn" required style="margin-bottom:6px;">
|
||||
<p class="text-muted" style="font-size:11px;">SearXNG 实例的根地址,无需带 /search 路径</p>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user