ixingchen commited on
Commit
082c751
·
verified ·
1 Parent(s): 339b26c

Add 2 files

Browse files
Files changed (2) hide show
  1. README.md +7 -5
  2. index.html +580 -19
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Ghproxy
3
- emoji: 📚
4
- colorFrom: green
5
- colorTo: green
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: ghproxy
3
+ emoji: 🐳
4
+ colorFrom: gray
5
+ colorTo: pink
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,580 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>GitHub 下载加速器 - 国内高速访问GitHub资源</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
+ <style>
10
+ .gradient-bg {
11
+ background: linear-gradient(135deg, #6e8efb, #a777e3);
12
+ }
13
+ .link-card:hover {
14
+ transform: translateY(-5px);
15
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
16
+ }
17
+ .pulse {
18
+ animation: pulse 2s infinite;
19
+ }
20
+ @keyframes pulse {
21
+ 0% {
22
+ transform: scale(1);
23
+ }
24
+ 50% {
25
+ transform: scale(1.05);
26
+ }
27
+ 100% {
28
+ transform: scale(1);
29
+ }
30
+ }
31
+ .loading {
32
+ display: inline-block;
33
+ width: 20px;
34
+ height: 20px;
35
+ border: 3px solid rgba(255,255,255,.3);
36
+ border-radius: 50%;
37
+ border-top-color: #fff;
38
+ animation: spin 1s ease-in-out infinite;
39
+ }
40
+ @keyframes spin {
41
+ to { transform: rotate(360deg); }
42
+ }
43
+ .toast {
44
+ position: fixed;
45
+ bottom: 20px;
46
+ left: 50%;
47
+ transform: translateX(-50%);
48
+ background-color: #333;
49
+ color: white;
50
+ padding: 12px 24px;
51
+ border-radius: 4px;
52
+ z-index: 1000;
53
+ opacity: 0;
54
+ transition: opacity 0.3s ease;
55
+ }
56
+ .toast.show {
57
+ opacity: 1;
58
+ }
59
+ .mobile-menu {
60
+ display: none;
61
+ position: fixed;
62
+ top: 0;
63
+ left: 0;
64
+ width: 100%;
65
+ height: 100%;
66
+ background-color: rgba(0,0,0,0.9);
67
+ z-index: 100;
68
+ flex-direction: column;
69
+ justify-content: center;
70
+ align-items: center;
71
+ }
72
+ .mobile-menu.show {
73
+ display: flex;
74
+ }
75
+ .mobile-menu a {
76
+ color: white;
77
+ font-size: 1.5rem;
78
+ margin: 15px 0;
79
+ text-decoration: none;
80
+ }
81
+ .mobile-menu-close {
82
+ position: absolute;
83
+ top: 20px;
84
+ right: 20px;
85
+ color: white;
86
+ font-size: 2rem;
87
+ cursor: pointer;
88
+ }
89
+ .info-cards-container {
90
+ display: flex;
91
+ overflow-x: auto;
92
+ scrollbar-width: none; /* Firefox */
93
+ -ms-overflow-style: none; /* IE and Edge */
94
+ padding-bottom: 8px;
95
+ }
96
+ .info-cards-container::-webkit-scrollbar {
97
+ display: none; /* Chrome, Safari, Opera */
98
+ }
99
+ .info-card {
100
+ flex: 0 0 auto;
101
+ width: 300px;
102
+ margin-right: 16px;
103
+ }
104
+ .info-card:last-child {
105
+ margin-right: 0;
106
+ }
107
+ @media (min-width: 768px) {
108
+ .info-cards-container {
109
+ display: grid;
110
+ grid-template-columns: repeat(3, 1fr);
111
+ gap: 16px;
112
+ overflow-x: visible;
113
+ }
114
+ .info-card {
115
+ width: auto;
116
+ margin-right: 0;
117
+ }
118
+ }
119
+ </style>
120
+ </head>
121
+ <body class="bg-gray-50">
122
+ <!-- Toast Notification -->
123
+ <div id="toast" class="toast"></div>
124
+
125
+ <!-- Mobile Menu -->
126
+ <div id="mobileMenu" class="mobile-menu">
127
+ <span id="mobileMenuClose" class="mobile-menu-close"><i class="fas fa-times"></i></span>
128
+ <a href="#features" onclick="hideMobileMenu()">功能</a>
129
+ <a href="#how-to-use" onclick="hideMobileMenu()">使用指南</a>
130
+ <a href="#faq" onclick="hideMobileMenu()">常见问题</a>
131
+ <a href="#converter" onclick="hideMobileMenu()">立即体验</a>
132
+ </div>
133
+
134
+ <!-- Header -->
135
+ <header class="gradient-bg text-white">
136
+ <div class="container mx-auto px-4 py-6">
137
+ <div class="flex justify-between items-center">
138
+ <div class="flex items-center space-x-2">
139
+ <i class="fab fa-github text-3xl"></i>
140
+ <h1 class="text-2xl font-bold">GitHub加速下载</h1>
141
+ </div>
142
+ <nav class="hidden md:flex space-x-6">
143
+ <a href="#features" class="hover:text-gray-200 transition">功能</a>
144
+ <a href="#how-to-use" class="hover:text-gray-200 transition">使用指南</a>
145
+ <a href="#faq" class="hover:text-gray-200 transition">常见问题</a>
146
+ </nav>
147
+ <button id="mobileMenuButton" class="md:hidden text-xl">
148
+ <i class="fas fa-bars"></i>
149
+ </button>
150
+ </div>
151
+ <div class="mt-16 mb-20 text-center">
152
+ <h2 class="text-4xl md:text-5xl font-bold mb-4">国内高速下载GitHub资源</h2>
153
+ <p class="text-xl max-w-2xl mx-auto">突破网络限制,使用国内镜像加速下载GitHub上的仓库、Release文件、源码等资源</p>
154
+ <div class="mt-8 flex justify-center">
155
+ <a href="#converter" class="bg-white text-purple-600 px-8 py-3 rounded-full font-bold hover:bg-gray-100 transition duration-300 shadow-lg pulse">立即体验</a>
156
+ </div>
157
+ </div>
158
+ </div>
159
+ </header>
160
+
161
+ <!-- Main Converter -->
162
+ <main class="container mx-auto px-4 py-12 -mt-10" id="converter">
163
+ <div class="bg-white rounded-xl shadow-xl p-6 max-w-4xl mx-auto">
164
+ <h2 class="text-2xl font-bold mb-6 text-gray-800">GitHub链接转换器</h2>
165
+ <div class="space-y-4">
166
+ <div>
167
+ <label for="github-url" class="block text-sm font-medium text-gray-700 mb-1">GitHub原始链接</label>
168
+ <div class="flex">
169
+ <input type="text" id="github-url" placeholder="https://github.com/owner/repo/releases/download/v1.0/example.zip"
170
+ class="flex-1 px-4 py-3 border border-gray-300 rounded-l-lg focus:ring-2 focus:ring-purple-500 focus:border-purple-500">
171
+ <button id="convert-btn" class="bg-purple-600 text-white px-6 py-3 rounded-r-lg hover:bg-purple-700 transition flex items-center justify-center min-w-24">
172
+ <span id="convert-text">转换</span>
173
+ <span id="convert-spinner" class="loading hidden ml-2"></span>
174
+ </button>
175
+ </div>
176
+ </div>
177
+ <div id="result-container" class="hidden">
178
+ <label class="block text-sm font-medium text-gray-700 mb-1">加速下载链接</label>
179
+ <div class="flex">
180
+ <input type="text" id="accelerated-url" readonly
181
+ class="flex-1 px-4 py-3 border border-gray-300 rounded-l-lg bg-gray-50">
182
+ <button id="copy-btn" class="bg-gray-200 text-gray-700 px-4 py-3 hover:bg-gray-300 transition">
183
+ <i class="fas fa-copy"></i>
184
+ </button>
185
+ <a id="download-btn" class="bg-green-500 text-white px-4 py-3 rounded-r-lg hover:bg-green-600 transition flex items-center">
186
+ <i class="fas fa-download mr-2"></i> 下载
187
+ </a>
188
+ </div>
189
+ <div class="mt-2 text-sm text-gray-500">
190
+ <span id="speed-indicator" class="inline-flex items-center">
191
+ <span class="w-3 h-3 bg-green-500 rounded-full mr-1"></span>
192
+ <span>高速通道已就绪</span>
193
+ </span>
194
+ <span class="ml-4">预计下载速度: <span class="font-bold">5-10MB/s</span></span>
195
+ </div>
196
+ </div>
197
+ <div id="error-message" class="hidden text-red-500 text-sm mt-2"></div>
198
+ </div>
199
+
200
+ <!-- Info Cards - Horizontal Scroll on Mobile, Grid on Desktop -->
201
+ <div class="mt-6">
202
+ <div class="info-cards-container">
203
+ <div class="info-card bg-blue-50 p-4 rounded-lg">
204
+ <h3 class="font-bold text-blue-800 mb-2">常用链接示例</h3>
205
+ <ul class="space-y-2 text-sm">
206
+ <li><a href="#" class="text-blue-600 hover:underline example-link">https://github.com/owner/repo</a></li>
207
+ <li><a href="#" class="text-blue-600 hover:underline example-link">https://github.com/owner/repo/releases</a></li>
208
+ <li><a href="#" class="text-blue-600 hover:underline example-link">https://github.com/owner/repo/archive/main.zip</a></li>
209
+ </ul>
210
+ </div>
211
+ <div class="info-card bg-purple-50 p-4 rounded-lg">
212
+ <h3 class="font-bold text-purple-800 mb-2">支持的类型</h3>
213
+ <ul class="space-y-2 text-sm">
214
+ <li class="flex items-center"><i class="fas fa-check-circle text-purple-500 mr-2"></i> 仓库源码下载</li>
215
+ <li class="flex items-center"><i class="fas fa-check-circle text-purple-500 mr-2"></i> Releases文件</li>
216
+ <li class="flex items-center"><i class="fas fa-check-circle text-purple-500 mr-2"></i> 分支/标签下载</li>
217
+ </ul>
218
+ </div>
219
+ <div class="info-card bg-green-50 p-4 rounded-lg">
220
+ <h3 class="font-bold text-green-800 mb-2">加速节点</h3>
221
+ <div class="flex items-center space-x-2">
222
+ <div class="flex-1">
223
+ <select id="mirror-select" class="w-full px-3 py-2 border border-gray-300 rounded-md">
224
+ <option value="auto">自动选择最优节点</option>
225
+ <option value="beijing">北京节点</option>
226
+ <option value="shanghai">上海节点</option>
227
+ <option value="guangzhou">广州节点</option>
228
+ <option value="hongkong">香港节点</option>
229
+ </select>
230
+ </div>
231
+ <button id="ping-btn" class="bg-green-100 text-green-700 p-2 rounded-md hover:bg-green-200">
232
+ <i class="fas fa-sync-alt"></i>
233
+ </button>
234
+ </div>
235
+ </div>
236
+ </div>
237
+ </div>
238
+ </div>
239
+ </main>
240
+
241
+ <!-- Features -->
242
+ <section class="bg-gray-100 py-16" id="features">
243
+ <div class="container mx-auto px-4">
244
+ <h2 class="text-3xl font-bold text-center mb-12">为什么选择我们的加速服务</h2>
245
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
246
+ <div class="bg-white p-6 rounded-xl shadow-md link-card transition duration-300">
247
+ <div class="text-purple-500 mb-4">
248
+ <i class="fas fa-bolt text-4xl"></i>
249
+ </div>
250
+ <h3 class="text-xl font-bold mb-2">极速下载</h3>
251
+ <p class="text-gray-600">通过国内CDN节点加速,下载速度提升10倍以上,告别GitHub的缓慢下载体验。</p>
252
+ </div>
253
+ <div class="bg-white p-6 rounded-xl shadow-md link-card transition duration-300">
254
+ <div class="text-blue-500 mb-4">
255
+ <i class="fas fa-shield-alt text-4xl"></i>
256
+ </div>
257
+ <h3 class="text-xl font-bold mb-2">稳定可靠</h3>
258
+ <p class="text-gray-600">多节点负载均衡,自动故障转移,确保服务24小时稳定可用。</p>
259
+ </div>
260
+ <div class="bg-white p-6 rounded-xl shadow-md link-card transition duration-300">
261
+ <div class="text-green-500 mb-4">
262
+ <i class="fas fa-lock text-4xl"></i>
263
+ </div>
264
+ <h3 class="text-xl font-bold mb-2">安全加密</h3>
265
+ <p class="text-gray-600">所有传输数据加密处理,确保您的下载内容安全无篡改。</p>
266
+ </div>
267
+ </div>
268
+ </div>
269
+ </section>
270
+
271
+ <!-- How to Use -->
272
+ <section class="py-16" id="how-to-use">
273
+ <div class="container mx-auto px-4">
274
+ <h2 class="text-3xl font-bold text-center mb-12">使用指南</h2>
275
+ <div class="max-w-4xl mx-auto">
276
+ <div class="flex flex-col md:flex-row items-center mb-8">
277
+ <div class="md:w-1/3 mb-4 md:mb-0 flex justify-center">
278
+ <div class="bg-purple-100 text-purple-800 rounded-full w-16 h-16 flex items-center justify-center text-2xl font-bold">1</div>
279
+ </div>
280
+ <div class="md:w-2/3">
281
+ <h3 class="text-xl font-bold mb-2">复制GitHub链接</h3>
282
+ <p class="text-gray-600">在GitHub上找到您需要下载的仓库、Release文件或源码的原始链接,复制到剪贴板。</p>
283
+ </div>
284
+ </div>
285
+ <div class="flex flex-col md:flex-row items-center mb-8">
286
+ <div class="md:w-1/3 mb-4 md:mb-0 flex justify-center">
287
+ <div class="bg-blue-100 text-blue-800 rounded-full w-16 h-16 flex items-center justify-center text-2xl font-bold">2</div>
288
+ </div>
289
+ <div class="md:w-2/3">
290
+ <h3 class="text-xl font-bold mb-2">粘贴并转换</h3>
291
+ <p class="text-gray-600">将链接粘贴到本页面的输入框中,点击"转换"按钮生成加速下载链接。</p>
292
+ </div>
293
+ </div>
294
+ <div class="flex flex-col md:flex-row items-center">
295
+ <div class="md:w-1/3 mb-4 md:mb-0 flex justify-center">
296
+ <div class="bg-green-100 text-green-800 rounded-full w-16 h-16 flex items-center justify-center text-2xl font-bold">3</div>
297
+ </div>
298
+ <div class="md:w-2/3">
299
+ <h3 class="text-xl font-bold mb-2">高速下载</h3>
300
+ <p class="text-gray-600">点击"下载"按钮或使用下载工具获取加速后的文件,享受极速下载体验。</p>
301
+ </div>
302
+ </div>
303
+ </div>
304
+ </div>
305
+ </section>
306
+
307
+ <!-- FAQ -->
308
+ <section class="bg-gray-100 py-16" id="faq">
309
+ <div class="container mx-auto px-4">
310
+ <h2 class="text-3xl font-bold text-center mb-12">常见问题</h2>
311
+ <div class="max-w-3xl mx-auto space-y-4">
312
+ <div class="bg-white p-6 rounded-lg shadow">
313
+ <h3 class="font-bold text-lg mb-2 flex items-center">
314
+ <i class="fas fa-question-circle text-purple-500 mr-2"></i>
315
+ 这个服务是免费的吗?
316
+ </h3>
317
+ <p class="text-gray-600">是的,我们的GitHub加速下载服务完全免费,不收取任何费用。我们通过公益CDN节点提供加速服务。</p>
318
+ </div>
319
+ <div class="bg-white p-6 rounded-lg shadow">
320
+ <h3 class="font-bold text-lg mb-2 flex items-center">
321
+ <i class="fas fa-question-circle text-purple-500 mr-2"></i>
322
+ 支持哪些类型的GitHub链接?
323
+ </h3>
324
+ <p class="text-gray-600">我们支持几乎所有GitHub资源链接,包括仓库源码下载(zip/tar.gz)、Release文件、分支/标签下载等。</p>
325
+ </div>
326
+ <div class="bg-white p-6 rounded-lg shadow">
327
+ <h3 class="font-bold text-lg mb-2 flex items-center">
328
+ <i class="fas fa-question-circle text-purple-500 mr-2"></i>
329
+ 下载速度能达到多少?
330
+ </h3>
331
+ <p class="text-gray-600">根据网络状况不同,通常可以达到5-10MB/s的下载速度,比直接访问GitHub快10倍以上。</p>
332
+ </div>
333
+ <div class="bg-white p-6 rounded-lg shadow">
334
+ <h3 class="font-bold text-lg mb-2 flex items-center">
335
+ <i class="fas fa-question-circle text-purple-500 mr-2"></i>
336
+ 文件安全性如何保证?
337
+ </h3>
338
+ <p class="text-gray-600">我们会对所有加速文件进行MD5校验,确保与GitHub原始文件完全一致,不会对文件内容做任何修改。</p>
339
+ </div>
340
+ </div>
341
+ </div>
342
+ </section>
343
+
344
+ <!-- Footer -->
345
+ <footer class="bg-gray-800 text-white py-12">
346
+ <div class="container mx-auto px-4">
347
+ <div class="grid grid-cols-1 md:grid-cols-4 gap-8">
348
+ <div>
349
+ <h3 class="text-xl font-bold mb-4">GitHub加速下载</h3>
350
+ <p class="text-gray-400">为国内开发者提供高速稳定的GitHub资源下载服务。</p>
351
+ </div>
352
+ <div>
353
+ <h4 class="font-bold mb-4">快速链接</h4>
354
+ <ul class="space-y-2">
355
+ <li><a href="#features" class="text-gray-400 hover:text-white transition">功能特点</a></li>
356
+ <li><a href="#how-to-use" class="text-gray-400 hover:text-white transition">使用指南</a></li>
357
+ <li><a href="#faq" class="text-gray-400 hover:text-white transition">常见问题</a></li>
358
+ </ul>
359
+ </div>
360
+ <div>
361
+ <h4 class="font-bold mb-4">相关资源</h4>
362
+ <ul class="space-y-2">
363
+ <li><a href="https://github.com" class="text-gray-400 hover:text-white transition" target="_blank">GitHub官网</a></li>
364
+ <li><a href="https://developer.aliyun.com/mirror/" class="text-gray-400 hover:text-white transition" target="_blank">阿里云镜像站</a></li>
365
+ <li><a href="https://mirrors.tuna.tsinghua.edu.cn/" class="text-gray-400 hover:text-white transition" target="_blank">清华大学镜像站</a></li>
366
+ </ul>
367
+ </div>
368
+ <div>
369
+ <h4 class="font-bold mb-4">联系我们</h4>
370
+ <div class="flex space-x-4">
371
+ <a href="#" class="text-gray-400 hover:text-white transition text-xl"><i class="fab fa-weixin"></i></a>
372
+ <a href="#" class="text-gray-400 hover:text-white transition text-xl"><i class="fab fa-qq"></i></a>
373
+ <a href="#" class="text-gray-400 hover:text-white transition text-xl"><i class="fab fa-github"></i></a>
374
+ </div>
375
+ </div>
376
+ </div>
377
+ <div class="border-t border-gray-700 mt-8 pt-8 text-center text-gray-400">
378
+ <p>© 2023 GitHub加速下载服务. 保留所有权利.</p>
379
+ </div>
380
+ </div>
381
+ </footer>
382
+
383
+ <script>
384
+ document.addEventListener('DOMContentLoaded', function() {
385
+ // Mobile menu functionality
386
+ const mobileMenuButton = document.getElementById('mobileMenuButton');
387
+ const mobileMenu = document.getElementById('mobileMenu');
388
+ const mobileMenuClose = document.getElementById('mobileMenuClose');
389
+
390
+ mobileMenuButton.addEventListener('click', showMobileMenu);
391
+ mobileMenuClose.addEventListener('click', hideMobileMenu);
392
+
393
+ function showMobileMenu() {
394
+ mobileMenu.classList.add('show');
395
+ document.body.style.overflow = 'hidden';
396
+ }
397
+
398
+ function hideMobileMenu() {
399
+ mobileMenu.classList.remove('show');
400
+ document.body.style.overflow = '';
401
+ }
402
+
403
+ // Example links
404
+ document.querySelectorAll('.example-link').forEach(link => {
405
+ link.addEventListener('click', function(e) {
406
+ e.preventDefault();
407
+ document.getElementById('github-url').value = this.textContent;
408
+ document.getElementById('github-url').focus();
409
+ });
410
+ });
411
+
412
+ // Convert button
413
+ document.getElementById('convert-btn').addEventListener('click', function() {
414
+ const githubUrl = document.getElementById('github-url').value.trim();
415
+ const mirror = document.getElementById('mirror-select').value;
416
+
417
+ if (!githubUrl) {
418
+ showError('请输入GitHub链接');
419
+ return;
420
+ }
421
+
422
+ if (!githubUrl.includes('github.com')) {
423
+ showError('请输入有效的GitHub链接');
424
+ return;
425
+ }
426
+
427
+ // Show loading spinner
428
+ document.getElementById('convert-text').classList.add('hidden');
429
+ document.getElementById('convert-spinner').classList.remove('hidden');
430
+ document.getElementById('error-message').classList.add('hidden');
431
+
432
+ // Simulate API call with timeout
433
+ setTimeout(() => {
434
+ try {
435
+ // This is a simulation - in a real app you would call your backend API
436
+ const acceleratedUrl = generateAcceleratedUrl(githubUrl, mirror);
437
+
438
+ document.getElementById('accelerated-url').value = acceleratedUrl;
439
+ document.getElementById('download-btn').href = acceleratedUrl;
440
+ document.getElementById('result-container').classList.remove('hidden');
441
+
442
+ // Scroll to result
443
+ document.getElementById('result-container').scrollIntoView({ behavior: 'smooth' });
444
+
445
+ showToast('转换成功!', 'success');
446
+ } catch (error) {
447
+ showError('转换失败: ' + error.message);
448
+ showToast('转换失败: ' + error.message, 'error');
449
+ } finally {
450
+ // Hide loading spinner
451
+ document.getElementById('convert-text').classList.remove('hidden');
452
+ document.getElementById('convert-spinner').classList.add('hidden');
453
+ }
454
+ }, 1000);
455
+ });
456
+
457
+ // Function to generate accelerated URL (simulation)
458
+ function generateAcceleratedUrl(githubUrl, mirror) {
459
+ // Basic validation
460
+ if (!githubUrl.startsWith('https://github.com/')) {
461
+ throw new Error('无效的GitHub链接');
462
+ }
463
+
464
+ // Remove any query parameters or fragments
465
+ const cleanUrl = githubUrl.split('?')[0].split('#')[0];
466
+
467
+ // Determine mirror domain based on selection
468
+ let mirrorDomain;
469
+ switch(mirror) {
470
+ case 'beijing':
471
+ mirrorDomain = 'github.axingchen.com';
472
+ break;
473
+ case 'shanghai':
474
+ mirrorDomain = 'github.axingchen.com';
475
+ break;
476
+ case 'guangzhou':
477
+ mirrorDomain = 'github.axingchen.com';
478
+ break;
479
+ case 'hongkong':
480
+ mirrorDomain = 'github.axingchen.com';
481
+ break;
482
+ default: // auto
483
+ mirrorDomain = 'github.axingchen.com';
484
+ }
485
+
486
+ // Construct accelerated URL in the correct format
487
+ return `https://${mirrorDomain}/${cleanUrl}`;
488
+ }
489
+
490
+ // Copy button
491
+ document.getElementById('copy-btn').addEventListener('click', function() {
492
+ const urlInput = document.getElementById('accelerated-url');
493
+ urlInput.select();
494
+ document.execCommand('copy');
495
+
496
+ // Show copied feedback
497
+ const originalText = this.innerHTML;
498
+ this.innerHTML = '<i class="fas fa-check"></i> 已复制';
499
+ setTimeout(() => {
500
+ this.innerHTML = originalText;
501
+ }, 2000);
502
+
503
+ showToast('链接已复制到剪贴板', 'success');
504
+ });
505
+
506
+ // Ping button
507
+ document.getElementById('ping-btn').addEventListener('click', function() {
508
+ const button = this;
509
+ const originalIcon = button.innerHTML;
510
+
511
+ // Show loading
512
+ button.innerHTML = '<i class="fas fa-circle-notch fa-spin"></i>';
513
+ button.disabled = true;
514
+
515
+ // Simulate ping test
516
+ setTimeout(() => {
517
+ const mirrors = [
518
+ { name: '北京节点', ping: 45 },
519
+ { name: '上海节点', ping: 38 },
520
+ { name: '广州节点', ping: 52 },
521
+ { name: '香港节点', ping: 28 }
522
+ ];
523
+
524
+ const fastest = mirrors.reduce((prev, current) =>
525
+ (prev.ping < current.ping) ? prev : current
526
+ );
527
+
528
+ showToast(`最快节点: ${fastest.name} (${fastest.ping}ms)`, 'info');
529
+
530
+ // Restore button
531
+ button.innerHTML = originalIcon;
532
+ button.disabled = false;
533
+ }, 1500);
534
+ });
535
+
536
+ // Show error message
537
+ function showError(message) {
538
+ const errorElement = document.getElementById('error-message');
539
+ errorElement.textContent = message;
540
+ errorElement.classList.remove('hidden');
541
+ }
542
+
543
+ // Toast notification
544
+ function showToast(message, type = 'info') {
545
+ const toast = document.getElementById('toast');
546
+ toast.textContent = message;
547
+
548
+ // Set color based on type
549
+ switch(type) {
550
+ case 'success':
551
+ toast.style.backgroundColor = '#48BB78';
552
+ break;
553
+ case 'error':
554
+ toast.style.backgroundColor = '#F56565';
555
+ break;
556
+ case 'info':
557
+ toast.style.backgroundColor = '#4299E1';
558
+ break;
559
+ default:
560
+ toast.style.backgroundColor = '#333';
561
+ }
562
+
563
+ toast.classList.add('show');
564
+
565
+ // Hide after 3 seconds
566
+ setTimeout(() => {
567
+ toast.classList.remove('show');
568
+ }, 3000);
569
+ }
570
+
571
+ // Auto-convert when pressing Enter in input field
572
+ document.getElementById('github-url').addEventListener('keypress', function(e) {
573
+ if (e.key === 'Enter') {
574
+ document.getElementById('convert-btn').click();
575
+ }
576
+ });
577
+ });
578
+ </script>
579
+ <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=ixingchen/ghproxy" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
580
+ </html>