diff --git a/public/data/friends.json b/public/data/friends.json new file mode 100644 index 0000000..6f3a064 --- /dev/null +++ b/public/data/friends.json @@ -0,0 +1,34 @@ +{ + "friends": [ + { + "name": "Jurangren", + "desc": "本站后端大手子!", + "url": "https://github.com/Jurangren", + "logo": "https://avatars.githubusercontent.com/u/111159360" + }, + { + "name": "Asuna", + "desc": "LINK START!", + "url": "https://saop.cc/", + "logo": "https://saop.cc/avatar.webp" + }, + { + "name": "VNDB", + "desc": "Visual Novel Database", + "url": "https://vndb.org/", + "logo": "https://vndb.org/favicon.ico" + }, + { + "name": "梓澪", + "desc": "梓澪の妙妙屋", + "url": "https://zi0.cc/", + "logo": "https://img.mjj.today/2023/01/23/2b6331a29bf32d2af96a2537e10a5ee8.webp" + }, + { + "name": "VNS", + "desc": "Visual Novel", + "url": "https://gal.saop.cc", + "logo": "https://gal.saop.cc/images/logo.svg" + } + ] +} diff --git a/public/sitemap.xml b/public/sitemap.xml index 04c1d35..ad7e290 100644 --- a/public/sitemap.xml +++ b/public/sitemap.xml @@ -1,43 +1,43 @@ - - - - - - https://searchgal.homes/ - 2025-12-21 - daily - 1.0 - - https://searchgal.homes/logo.svg - SearchGal - Galgame 聚合搜索 - Galgame 资源聚合搜索引擎,支持多站点搜索 - - - https://searchgal.homes/og-image.png - SearchGal 社交分享图 - - - - - - https://searchgal.homes/llms.txt - 2025-12-21 - weekly - 0.6 - - - - - https://searchgal.homes/manifest.json - 2025-12-21 - monthly - 0.3 - - - + + + + + + https://searchgal.homes/ + 2025-12-21 + daily + 1.0 + + https://searchgal.homes/logo.svg + SearchGal - Galgame 聚合搜索 + Galgame 资源聚合搜索引擎,支持多站点搜索 + + + https://searchgal.homes/og-image.png + SearchGal 社交分享图 + + + + + + https://searchgal.homes/llms.txt + 2025-12-21 + weekly + 0.6 + + + + + https://searchgal.homes/manifest.json + 2025-12-21 + monthly + 0.3 + + + diff --git a/src/components/SearchHeader.vue b/src/components/SearchHeader.vue index cfcd678..5d7c1b7 100644 --- a/src/components/SearchHeader.vue +++ b/src/components/SearchHeader.vue @@ -390,6 +390,72 @@ + + +
+
+
+

+ + 友情链接 +

+ + + 交换友链 + +
+ +
+
@@ -418,6 +484,8 @@ import { Loader2, CornerDownLeft, XCircle, + Link2, + GitPullRequestArrow, } from 'lucide-vue-next' import { getSearchParamsFromURL, updateURLParams, onURLParamsChange } from '@/utils/urlParams' import { saveSearchHistory } from '@/utils/persistence' @@ -428,6 +496,32 @@ const customApi = ref('') const searchMode = ref<'game' | 'patch'>('game') let cleanupURLListener: (() => void) | null = null +// 友情链接 +interface FriendLink { + name: string + desc: string + url: string + logo: string +} +const friendLinks = ref([]) + +// 获取友情链接数据 +async function loadFriendLinks() { + try { + const res = await fetch('/data/friends.json') + const data = await res.json() + friendLinks.value = data.friends || [] + } catch { + // 静默失败 + } +} + +// 友链 logo 加载失败时的处理 +function handleFriendLogoError(e: Event) { + const img = e.target as HTMLImageElement + img.src = 'data:image/svg+xml,' +} + // 搜索防抖 - 防止 800ms 内重复触发 const { isLocked: isSearchLocked, click: debouncedSearchTrigger } = useDebouncedClick(800) @@ -472,6 +566,9 @@ onMounted(() => { isUpdatingFromURL = false }, 200) }) + + // 加载友情链接 + loadFriendLinks() }) onUnmounted(() => { diff --git a/src/components/UpdateToast.vue b/src/components/UpdateToast.vue index 56d2833..d5f60cd 100644 --- a/src/components/UpdateToast.vue +++ b/src/components/UpdateToast.vue @@ -23,39 +23,23 @@ {{ countdown > 0 ? `${countdown} 秒后自动更新...` : '正在更新...' }}

- - -