Files
SearcjGal-frontend/index.html
AdingApkgg bd35decfde 250714
2025-07-14 08:40:33 +08:00

408 lines
22 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Galgame 聚合搜索</title>
<style>
@import "tailwindcss";
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
"Segoe UI Symbol";
line-height: 1.6;
background: fixed #f0bbbb
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='192' height='192' viewBox='0 0 192 192'%3E%3Cpath fill='%23000000' fill-opacity='0.05' d='M192 15v2a11 11 0 0 0-11 11c0 1.94 1.16 4.75 2.53 6.11l2.36 2.36a6.93 6.93 0 0 1 1.22 7.56l-.43.84a8.08 8.08 0 0 1-6.66 4.13H145v35.02a6.1 6.1 0 0 0 3.03 4.87l.84.43c1.58.79 4 .4 5.24-.85l2.36-2.36a12.04 12.04 0 0 1 7.51-3.11 13 13 0 1 1 .02 26 12 12 0 0 1-7.53-3.11l-2.36-2.36a4.93 4.93 0 0 0-5.24-.85l-.84.43a6.1 6.1 0 0 0-3.03 4.87V143h35.02a8.08 8.08 0 0 1 6.66 4.13l.43.84a6.91 6.91 0 0 1-1.22 7.56l-2.36 2.36A10.06 10.06 0 0 0 181 164a11 11 0 0 0 11 11v2a13 13 0 0 1-13-13 12 12 0 0 1 3.11-7.53l2.36-2.36a4.93 4.93 0 0 0 .85-5.24l-.43-.84a6.1 6.1 0 0 0-4.87-3.03H145v35.02a8.08 8.08 0 0 1-4.13 6.66l-.84.43a6.91 6.91 0 0 1-7.56-1.22l-2.36-2.36A10.06 10.06 0 0 0 124 181a11 11 0 0 0-11 11h-2a13 13 0 0 1 13-13c2.47 0 5.79 1.37 7.53 3.11l2.36 2.36a4.94 4.94 0 0 0 5.24.85l.84-.43a6.1 6.1 0 0 0 3.03-4.87V145h-35.02a8.08 8.08 0 0 1-6.66-4.13l-.43-.84a6.91 6.91 0 0 1 1.22-7.56l2.36-2.36A10.06 10.06 0 0 0 107 124a11 11 0 0 0-22 0c0 1.94 1.16 4.75 2.53 6.11l2.36 2.36a6.93 6.93 0 0 1 1.22 7.56l-.43.84a8.08 8.08 0 0 1-6.66 4.13H49v35.02a6.1 6.1 0 0 0 3.03 4.87l.84.43c1.58.79 4 .4 5.24-.85l2.36-2.36a12.04 12.04 0 0 1 7.51-3.11A13 13 0 0 1 81 192h-2a11 11 0 0 0-11-11c-1.94 0-4.75 1.16-6.11 2.53l-2.36 2.36a6.93 6.93 0 0 1-7.56 1.22l-.84-.43a8.08 8.08 0 0 1-4.13-6.66V145H11.98a6.1 6.1 0 0 0-4.87 3.03l-.43.84c-.79 1.58-.4 4 .85 5.24l2.36 2.36a12.04 12.04 0 0 1 3.11 7.51A13 13 0 0 1 0 177v-2a11 11 0 0 0 11-11c0-1.94-1.16-4.75-2.53-6.11l-2.36-2.36a6.93 6.93 0 0 1-1.22-7.56l.43-.84a8.08 8.08 0 0 1 6.66-4.13H47v-35.02a6.1 6.1 0 0 0-3.03-4.87l-.84-.43c-1.59-.8-4-.4-5.24.85l-2.36 2.36A12 12 0 0 1 28 109a13 13 0 1 1 0-26c2.47 0 5.79 1.37 7.53 3.11l2.36 2.36a4.94 4.94 0 0 0 5.24.85l.84-.43A6.1 6.1 0 0 0 47 84.02V49H11.98a8.08 8.08 0 0 1-6.66-4.13l-.43-.84a6.91 6.91 0 0 1 1.22-7.56l2.36-2.36A10.06 10.06 0 0 0 11 28 11 11 0 0 0 0 17v-2a13 13 0 0 1 13 13c0 2.47-1.37 5.79-3.11 7.53l-2.36 2.36a4.94 4.94 0 0 0-.85 5.24l.43.84A6.1 6.1 0 0 0 11.98 47H47V11.98a8.08 8.08 0 0 1 4.13-6.66l.84-.43a6.91 6.91 0 0 1 7.56 1.22l2.36 2.36A10.06 10.06 0 0 0 68 11 11 11 0 0 0 79 0h2a13 13 0 0 1-13 13 12 12 0 0 1-7.53-3.11l-2.36-2.36a4.93 4.93 0 0 0-5.24-.85l-.84.43A6.1 6.1 0 0 0 49 11.98V47h35.02a8.08 8.08 0 0 1 6.66 4.13l.43.84a6.91 6.91 0 0 1-1.22 7.56l-2.36 2.36A10.06 10.06 0 0 0 85 68a11 11 0 0 0 22 0c0-1.94-1.16-4.75-2.53-6.11l-2.36-2.36a6.93 6.93 0 0 1-1.22-7.56l.43-.84a8.08 8.08 0 0 1 6.66-4.13H143V11.98a6.1 6.1 0 0 0-3.03-4.87l-.84-.43c-1.59-.8-4-.4-5.24.85l-2.36 2.36A12 12 0 0 1 124 13a13 13 0 0 1-13-13h2a11 11 0 0 0 11 11c1.94 0 4.75-1.16 6.11-2.53l2.36-2.36a6.93 6.93 0 0 1 7.56-1.22l.84.43a8.08 8.08 0 0 1 4.13 6.66V47h35.02a6.1 6.1 0 0 0 4.87-3.03l.43-.84c.8-1.59.4-4-.85-5.24l-2.36-2.36A12 12 0 0 1 179 28a13 13 0 0 1 13-13zM84.02 143a6.1 6.1 0 0 0 4.87-3.03l.43-.84c.8-1.59.4-4-.85-5.24l-2.36-2.36A12 12 0 0 1 83 124a13 13 0 1 1 26 0c0 2.47-1.37 5.79-3.11 7.53l-2.36 2.36a4.94 4.94 0 0 0-.85 5.24l.43.84a6.1 6.1 0 0 0 4.87 3.03H143v-35.02a8.08 8.08 0 0 1 4.13-6.66l.84-.43a6.91 6.91 0 0 1 7.56 1.22l2.36 2.36A10.06 10.06 0 0 0 164 107a11 11 0 0 0 0-22c-1.94 0-4.75 1.16-6.11 2.53l-2.36 2.36a6.93 6.93 0 0 1-7.56 1.22l-.84-.43a8.08 8.08 0 0 1-4.13-6.66V49h-35.02a6.1 6.1 0 0 0-4.87 3.03l-.43.84c-.79 1.58-.4 4 .85 5.24l2.36 2.36a12.04 12.04 0 0 1 3.11 7.51A13 13 0 1 1 83 68a12 12 0 0 1 3.11-7.53l2.36-2.36a4.93 4.93 0 0 0 .85-5.24l-.43-.84A6.1 6.1 0 0 0 84.02 49H49v35.02a8.08 8.08 0 0 1-4.13 6.66l-.84.43a6.91 6.91 0 0 1-7.56-1.22l-2.36-2.36A10.06 10.06 0 0 0 28 85a11 11 0 0 0 0 22c1.94 0 4.75-1.16 6.11-2.53l2.36-2.36a6.93 6.93 0 0 1 7.56-1.22l.84.43a8.08 8.08 0 0 1 4.13 6.66V143h35.02z'%3E%3C/path%3E%3C/svg%3E")
center;
min-height: 100vh;
overflow-wrap: break-word;
margin: 0;
padding: 0;
}
</style>
<meta
name="description"
content="一个聚合搜索 Galgame 的网站,支持多平台搜索"
/>
<meta name="keywords" content="Galgame, 搜索, 聚合搜索, 游戏" />
<meta name="author" content="Moe-Sakura" />
<meta property="og:title" content="Galgame 聚合搜索" />
<meta
property="og:description"
content="一个聚合搜索 Galgame 的网站,支持多平台搜索"
/>
<meta property="og:type" content="website" />
<meta property="og:site_name" content="Galgame 聚合搜索" />
<link rel="shortcut icon" href="./gamepad-solid.svg" type="image/svg+xml" />
<link
fetchpriority="low"
href="https://registry.npmmirror.com/artalk/latest/files/dist/Artalk.css"
rel="stylesheet"
/>
<link
fetchpriority="low"
href="https://registry.npmmirror.com/lightgallery/latest/files/css/lightgallery.css"
rel="stylesheet"
/>
<link
rel="stylesheet"
href="https://registry.npmmirror.com/animate.css/latest/files/animate.min.css"
fetchpriority="high"
/>
<link
rel="stylesheet"
href="https://registry.npmmirror.com/@fortawesome/fontawesome-free/latest/files/css/all.min.css"
fetchpriority="high"
/>
<script
importance="high"
src="https://registry.npmmirror.com/quicklink/latest/files/dist/quicklink.umd.js"
></script>
<script
async
importance="high"
src="https://registry.npmmirror.com/pace-js/latest/files/pace.min.js"
></script>
<link
href="https://registry.npmmirror.com/pace-js/latest/files/themes/blue/pace-theme-flash.css"
importance="high"
rel="stylesheet"
/>
</head>
<body>
<main class="flex-1 flex flex-col items-center justify-center min-h-screen">
<div
class="container mx-auto max-w-4xl bg-white/95 rounded-[8px] shadow-xl px-0 py-0 mt-0 z-10 relative flex flex-col transition-all duration-300"
>
<div
class="relative px-0 pt-0 pb-0 border-b border-gray-100 overflow-hidden"
>
<img
src="https://www.loliapi.com/acg/pc/"
alt="随图"
class="w-full object-contain object-center transition-all duration-300 hover:scale-105 hover:brightness-95 draggable"
draggable="true"
/>
</div>
<div
class="px-12 pt-6 pb-5 bg-gradient-to-r from-indigo-50 via-pink-50 to-yellow-50 text-center flex items-center justify-center min-h-[56px] transition-all duration-300"
>
<h1
class="text-2xl md:text-3xl font-extrabold text-indigo-700 drop-shadow-lg inline-flex items-center gap-2 md:gap-3 whitespace-nowrap"
>
<i class="fas fa-gamepad text-pink-400"></i>
Galgame 聚合搜索
</h1>
</div>
<form
id="searchForm"
class="flex flex-col gap-5 px-6 pt-6 pb-4 relative"
>
<div
class="flex flex-col md:flex-row gap-2 md:gap-0 items-center w-full rounded-[8px]"
>
<div
class="flex flex-col md:flex-row w-full items-stretch md:items-center gap-0"
>
<div class="relative flex-1 min-w-0 flex items-center">
<span
class="absolute left-3 top-1/2 -translate-y-1/2 text-indigo-400 pointer-events-none text-lg z-10"
><i class="fas fa-keyboard"></i
></span>
<input
type="text"
id="game"
name="game"
required
placeholder="游戏或补丁关键字词"
class="pl-10 pr-4 h-11 border border-gray-300 border-b-0 md:border-b md:border-r-0 rounded-t-[8px] md:rounded-l-[8px] md:rounded-tr-none md:rounded-bl-[8px] md:rounded-br-none focus:outline-none focus:ring-2 focus:ring-indigo-400 bg-gray-50 text-base shadow-sm transition w-full md:w-auto placeholder-gray-400 min-w-0 flex-1 rounded-b-none"
autocomplete="off"
spellcheck="false"
/>
</div>
<div
class="relative flex items-center w-full md:max-w-[280px] md:w-[280px] mt-0 md:mt-0"
>
<span
class="absolute left-3 top-1/2 -translate-y-1/2 text-pink-400 pointer-events-none text-base z-10"
><i class="fas fa-lock"></i
></span>
<input
type="password"
id="zypassword"
name="zypassword"
placeholder="紫缘 Gal 密码(可选)"
class="pl-10 pr-16 h-11 border border-t-0 border-gray-300 md:border-l-0 md:border-t border-b-0 md:border-b rounded-b-[8px] md:rounded-none md:rounded-br-[8px] md:rounded-tr-[8px] focus:outline-none focus:ring-2 focus:ring-pink-300 bg-gray-50 text-sm shadow-sm transition w-full min-w-0 md:w-auto md:flex-shrink md:flex-grow md:basis-1/3 placeholder-gray-400 rounded-t-none md:rounded-t-none"
autocomplete="off"
spellcheck="false"
/>
<a
href="https://galzy.eu.org/"
target="_blank"
class="absolute right-1.5 top-1/2 -translate-y-1/2 text-xs text-pink-600 bg-pink-50 hover:bg-pink-100 hover:underline rounded-[6px] px-1.5 py-0.5 transition whitespace-nowrap shadow-sm border border-pink-200 h-[26px] flex items-center leading-[1.6] z-10"
>点我获取密码</a
>
</div>
</div>
</div>
<div class="flex flex-col gap-2 w-full mt-4">
<button
type="submit"
id="searchBtn"
class="py-3 px-6 bg-indigo-600 hover:bg-indigo-700 active:bg-indigo-800 text-white font-bold transition-all flex items-center justify-center gap-3 shadow-md relative overflow-hidden disabled:bg-indigo-300 disabled:opacity-80 rounded-[8px] text-lg border-0 focus:ring-2 focus:ring-indigo-300"
disabled
>
<span
id="progressBar"
class="absolute left-0 top-0 h-full bg-pink-400/80 transition-all duration-300 z-0 opacity-0 w-0 rounded-[8px]"
></span>
<span class="relative z-10 flex items-center gap-2">
<i class="fas fa-search"></i>
<span id="searchBtnText">开始搜索</span>
</span>
</button>
<div
class="flex flex-row flex-wrap items-center gap-0 w-full justify-center select-none mt-2"
>
<div>
<input
type="radio"
id="gameMode"
name="searchMode"
value="game"
class="hidden peer"
checked
/>
<label
for="gameMode"
class="select-none cursor-pointer px-4 py-2 font-semibold text-xs flex items-center gap-1 transition-all duration-200 bg-white peer-checked:bg-indigo-600 peer-checked:text-white text-indigo-700 hover:bg-indigo-300 animate__animated animate__pulse animate__faster peer-checked:animate__tada rounded-l-[8px] border-0 shadow-sm"
>
<i class="fas fa-gamepad"></i>游戏</label
>
</div>
<div>
<input
type="radio"
id="patchMode"
name="searchMode"
value="patch"
class="hidden peer"
/>
<label
for="patchMode"
class="select-none cursor-pointer px-4 py-2 font-semibold text-xs flex items-center gap-1 transition-all duration-200 bg-white peer-checked:bg-pink-500 peer-checked:text-white text-pink-700 hover:bg-pink-300 animate__animated animate__pulse animate__faster peer-checked:animate__tada border-l border-gray-100 rounded-none shadow-sm"
><i class="fas fa-wrench"></i>补丁</label
>
</div>
<div>
<input
type="checkbox"
id="magicAccess"
name="magicAccess"
class="hidden peer"
/>
<label
for="magicAccess"
class="select-none cursor-pointer px-4 py-2 font-semibold text-xs flex items-center gap-1 transition-all duration-200 bg-white peer-checked:bg-yellow-400 peer-checked:text-white text-yellow-700 hover:bg-yellow-300 animate__animated animate__pulse animate__faster peer-checked:animate__tada border-l border-gray-100 rounded-r-[8px] shadow-sm"
><i class="fas fa-hat-wizard"></i>魔搜</label
>
</div>
</div>
<div class="relative flex-1 min-w-0 flex items-center mt-3">
<span
class="absolute left-3 top-1/2 -translate-y-1/2 text-purple-400 pointer-events-none text-lg z-10"
><i class="fas fa-code"></i
></span>
<input
type="text"
id="customApi"
name="customApi"
placeholder="自定义 API 地址(可选)"
class="pl-10 pr-4 h-11 border border-gray-300 rounded-[8px] focus:outline-none focus:ring-2 focus:ring-purple-400 bg-gray-50 text-base shadow-sm transition w-full placeholder-gray-400"
autocomplete="off"
spellcheck="false"
/>
</div>
<div class="text-xs text-gray-500 mt-1 ml-1 px-1">
例如: `https://api.searchgal.homes` 或 `http://127.0.0.1:8898`
</div>
</div>
</form>
<div class="error text-red-600 font-semibold px-12" id="error"></div>
<div class="results mt-2 px-6" id="results"></div>
<section class="w-full max-w-4xl mx-auto mt-8">
<div class="bg-white/95 rounded-[8px] p-6 text-gray-700">
<h2
class="text-xl font-bold text-indigo-700 mb-4 inline-flex items-center gap-2"
>
<i class="fas fa-info-circle text-blue-500"></i> 咱家的使用须知
</h2>
<ul class="list-disc list-inside space-y-2 text-sm">
<li>
首先,衷心感谢
<a
href="https://saop.cc/"
target="_blank"
class="font-semibold text-indigo-600 hover:underline"
>@Asuna</a
>
大佬提供的服务器和技术支持!没有大佬的魔法,咱可跑不起来!
</li>
<li>
本程序纯属<strong>爱发电</strong>,仅供绅士们交流学习使用,务必请大家<strong
>支持正版 Galgame</strong
>!入正不亏哦!
</li>
<li>
本站只做互联网内容的<strong>聚合搬运工</strong>,搜索结果均来自第三方站点,下载前请各位自行判断<strong>资源安全性</strong>,以免翻车。
</li>
<li>
如果想体验“魔法”搜索,记得启用<strong>“魔搜”</strong>,解锁更多神秘站点!
</li>
<li>
搜索时请注意关键词长度!<strong>关键词太短</strong>可能搜不全(部分站点只显示首批结果),<strong>太长</strong>则可能无法精准匹配。建议尝试<strong>适当的关键词</strong>,效果更佳~
</li>
<li>
本程序每次查询完毕即断开连接,<strong>严禁任何形式的爆破或恶意爬取</strong>,做个文明的绅士!
</li>
<li>
万一某个站点搜索挂了,先看看自己的魔法是否到位,也可能是站点维护了,或者咱这边的<strong>爬虫失效</strong>了。
</li>
<li>
关于站点标签:
<span
class="inline-block px-2 py-0.5 rounded-full bg-green-200 text-green-800 text-xs font-medium"
>绿色</span
>
代表免登录<strong>直冲</strong>
<span
class="inline-block px-2 py-0.5 rounded-full bg-yellow-200 text-yellow-800 text-xs font-medium"
>金色</span
>
表示需要<strong>魔法加持</strong>才能访问;
<span
class="inline-block px-2 py-0.5 rounded-full bg-gray-200 text-gray-800 text-xs font-medium"
>白色</span
>
通常意味着需要<strong>登录/回复</strong>等额外操作才能拿到资源。
</li>
<li>
目前收录的站点多为 PC 平台资源,大部分站点提供 OneDrive
或直链下载,速度上比某些国内盘要<strong>给力</strong>不少!
</li>
<li>
为了支持各 Galgame
站点能长久运营,还请各位把浏览器的<strong>广告屏蔽插件</strong>关掉,或将这些站点加入白名单。大家建站不易,小小的支持也是大大的动力!
</li>
<li>
<span class="font-bold text-red-600"
>郑重呼吁:请务必支持 Galgame 正版!让爱与梦想延续!</span
>
</li>
<li>
如果您觉得咱这小工具好用,请移步
<a
href="https://github.com/Moe-Sakura"
target="_blank"
class="text-blue-600 hover:underline font-semibold"
>GitHub</a
>
给本项目点个免费的
<strong>Star</strong>
吧,秋梨膏!你的支持就是咱最大的动力,比心~
</li>
</ul>
</div>
</section>
<div
class="footer text-xs text-gray-500 mt-4 text-center border-t border-gray-100 pt-4 px-12 pb-4 rounded-b-lg"
>
<p>
<span class="inline-flex items-center gap-1 mr-2"
><i class="fas fa-eye"></i>访问:<span id="busuanzi_value_site_pv"
>null</span
></span
>
<span class="inline-flex items-center gap-1"
><i class="fas fa-user"></i>访客:<span
id="busuanzi_value_site_uv"
>null</span
></span
>
</p>
<div class="mt-3 inline-flex items-center gap-3 justify-center">
<span
class="inline-flex items-center gap-1 text-xs text-gray-400 bg-gray-100 rounded-[8px] px-2 py-1 font-mono select-none"
>
<i class="fas fa-code-branch"></i>
<a
href="https://github.com/Moe-Sakura/SearchGal/blob/main/version.md"
target="_blank"
class="text-gray-600 hover:underline"
>250714</a
>
</span>
<a
href="https://github.com/Moe-Sakura"
target="_blank"
class="inline-flex items-center gap-1 text-black border border-black bg-white/80 rounded-[8px] px-3 py-1 shadow font-semibold no-underline text-sm transition-all duration-200 hover:text-white hover:bg-black hover:underline hover:underline-offset-2 hover:shadow-lg focus:outline-none focus:ring-2 focus:ring-black/40"
style="text-decoration: none"
>
<i class="fab fa-github"></i>
GitHub
</a>
</div>
</div>
</div>
<section class="w-full max-w-4xl mx-auto mt-8 mb-8">
<div
id="Comments"
class="bg-white/80 rounded-lg shadow p-4 md:p-6 transition-all duration-300"
></div>
</section>
</main>
<div class="fixed bottom-16 right-3 flex flex-col space-y-3 z-50">
<button
id="scrollToTopBtn"
class="bg-indigo-600 hover:bg-indigo-700 text-white p-3 rounded-full shadow-lg transition-all duration-300 transform hover:scale-110 focus:outline-none focus:ring-2 focus:ring-indigo-300 flex items-center justify-center translate-z-0 **hidden**"
title="回到顶部"
>
<i class="fas fa-arrow-up"></i>
</button>
<a
href="#Comments"
id="scrollToCommentsBtn"
class="bg-pink-500 hover:bg-pink-600 text-white p-3 rounded-full shadow-lg transition-all duration-300 transform hover:scale-110 focus:outline-none focus:ring-2 focus:ring-pink-300 flex items-center justify-center **hidden**"
title="直达评论"
>
<i class="fas fa-comments"></i>
</a>
</div>
<script
src="https://registry.npmmirror.com/instant.page/latest/files/instantpage.js"
type="module"
></script>
<script
fetchpriority="low"
src="https://registry.npmmirror.com/lightgallery/latest/files/lightgallery.min.js"
></script>
<script
fetchpriority="low"
src="https://registry.npmmirror.com/artalk/latest/files/dist/Artalk.js"
></script>
<script
fetchpriority="low"
src="https://registry.npmmirror.com/@artalk/plugin-lightbox/latest/files/dist/artalk-plugin-lightbox.js"
></script>
<script type="module" src="/src/main.js" fetchpriority="high"></script>
<script
async
src="https://registry.npmmirror.com/js-asuna/latest/files/js/bsz.pure.mini.js"
fetchpriority="low"
></script>
</body>
</html>