mirror of
https://github.com/levywang/avhub.git
synced 2026-02-21 08:47:22 +08:00
Merge branch 'main' into demo
This commit is contained in:
commit
2435ac2c4d
@ -4,7 +4,7 @@
|
||||
|
||||
# AvHub - R18 Resource Search & Management Tool
|
||||
|
||||
**AvHub** is a web platform dedicated to the retrieval and management of adult video resources.
|
||||
**AvHub** is a web platform dedicated to the retrieval and management of `R18` video resources.
|
||||
|
||||
Cloudflare Page: https://avhub.pages.dev/
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
|
||||
# AvHub - R18 资源搜索和管理工具
|
||||
|
||||
**AvHub** 是一个致力于检索和管理成人视频资源的 Web 平台
|
||||
**AvHub** 是一个致力于检索和管理R18视频资源的 Web 平台
|
||||
|
||||
Cloudflare Page: https://avhub.pages.dev/
|
||||
|
||||
|
||||
@ -1,10 +1,21 @@
|
||||
https://videos1.bysshxd.com/20230726/Pg0dW2NlmPpg1/index.m3u8
|
||||
https://videos1.bysshxd.com/20230728/NJrY0K4386kRo/index.m3u8
|
||||
https://videos1.bysshxd.com/20230727/MJQA2oYdmVvJj/index.m3u8
|
||||
https://videos1.bysshxd.com/20230728/PRx1jzovobvJb/index.m3u8
|
||||
https://videos1.bysshxd.com/20230728/LJB97V6r9PnRy/index.m3u8
|
||||
https://videos1.bysshxd.com/20230728/QR1kwvNwlM7gB/index.m3u8
|
||||
https://videos1.bysshxd.com/20230726/qGWQNZYPWBEJl/index.m3u8
|
||||
https://videos1.bysshxd.com/20230728/Qg8zwYbrwaVRw/index.m3u8
|
||||
https://videos1.bysshxd.com/20230728/1GwbVQ52xaLgr/index.m3u8
|
||||
https://videos1.bysshxd.com/20230802/5G2kw3KpaY2R2/index.m3u8
|
||||
https://txmov2.a.yximgs.com/upic/2019/12/23/16/BMjAxOTEyMjMxNjIxMjRfMTY1NzYyM18yMDgzNzk0MjY3N18yXzM=_b_B772861850137ede4beb9f0db63947fd0.mp4
|
||||
https://txmov2.a.yximgs.com/upic/2021/03/03/09/BMjAyMTAzMDMwOTA3MjJfNzk3MTYxOTQ0XzQ1MzI5MTQzNzcxXzJfMw==_b_B5ad79ad25f92f4a0a5ccdc78c865b529.mp4
|
||||
https://txmov2.a.yximgs.com/upic/2021/06/01/11/BMjAyMTA2MDExMTIyMDhfMjM2MzkyOTY3Nl81MDYxMzYzMjI0OV8yXzM=_b_B3470a2101a1ef6a00f9a78f7cd53699a.mp4
|
||||
https://txmov2.a.yximgs.com/upic/2021/01/07/11/BMjAyMTAxMDcxMTA4MThfNTg0MDAzNDRfNDE5OTY1MTA4MTFfMV8z_b_Bf7776e64e305bb63af8f4b8b83738bb1.mp4
|
||||
https://txmov2.a.yximgs.com/upic/2021/05/10/14/BMjAyMTA1MTAxNDM3MjhfMjIwNzE1NzAyOV80OTM2MDU5ODkwOF8xXzM=_b_B6acc6d0a13a3c3049475276f1274f32e.mp4
|
||||
https://txmov2.a.yximgs.com/upic/2021/04/08/16/BMjAyMTA0MDgxNjMzMzZfMTczMzQ4NzI4XzQ3NDUwOTM0NTEyXzFfMw==_b_Baecc8006dcf6156fb2a30324ed4b6ad0.mp4
|
||||
https://txmov2.a.yximgs.com/upic/2020/12/22/22/BMjAyMDEyMjIyMjEzMjNfNDgzOTAzNDkwXzQxMTM5NDk2OTIwXzFfMw==_b_B208e031925d3d84a3efcbad8055d61de.mp4
|
||||
https://txmov2.a.yximgs.com/upic/2021/03/06/19/BMjAyMTAzMDYxOTQ3MzBfMjExMjA0ODM0NF80NTUyNTkwNjQ0Ml8xXzM=_b_B24246215b636e289e16d700a536c1d94.mp4
|
||||
https://txmov2.a.yximgs.com/upic/2021/01/19/21/BMjAyMTAxMTkyMTQzNDlfMjE2ODQ4NDg3OV80MjY1MjExNjQ2NF8xXzM=_b_B3b62c08576c5cc5085029c4461e7eb9f.mp4
|
||||
https://txmov2.a.yximgs.com/upic/2021/08/18/17/BMjAyMTA4MTgxNzQ5NTNfMTAyOTk4MzU5MF81NTQ5ODY2NjI4OF8xXzM=_b_B8b5ac30fb6af386e0bc3551b42f0be47.mp4
|
||||
https://txmov2.a.yximgs.com/upic/2021/02/19/12/BMjAyMTAyMTkxMjE0NDZfNjIwMjYyNjU5XzQ0NjIxMjcwNTE1XzJfMw==_b_Bd4d7f58485663ae9a6fa79982f33400b.mp4
|
||||
https://txmov2.a.yximgs.com/upic/2021/02/07/21/BMjAyMTAyMDcyMTI3MzFfNDgzOTAzNDkwXzQzNzc3Njc0NjI4XzFfMw==_b_B5684f39cd336ea1f31edb8ff627895c7.mp4
|
||||
https://txmov2.a.yximgs.com/upic/2021/01/06/11/BMjAyMTAxMDYxMTA5MTZfNTg0MDAzNDRfNDE5NTI0MjAzMTRfMV8z_b_B0c8b6240d2fa5d04d709e0129d78f4f4.mp4
|
||||
https://txmov2.a.yximgs.com/upic/2020/08/07/17/BMjAyMDA4MDcxNzU2MjFfMTU0NzU2MzQxOF8zMzg4MjYxMTQwN18xXzM=_b_B3c9fc2b83cd8f07f4a8b542067af12fd.mp4
|
||||
https://txmov2.a.yximgs.com/upic/2023/09/25/19/BMjAyMzA5MjUxOTQ4MzZfMTMxMjAyNjEyNV8xMTM1NjQwMjUyMDNfMl8z_b_Bead1ae1f9b7792318d5d72405de73054.mp4
|
||||
https://txmov2.a.yximgs.com/upic/2020/09/11/14/BMjAyMDA5MTExNDI2MTBfMTY1NzYyM18zNTg0MzA4ODU2Ml8xXzM=_b_B81923420dd954e420c42fc5091313ada.mp4
|
||||
https://txmov2.a.yximgs.com/upic/2021/09/19/12/BMjAyMTA5MTkxMjU5NDlfMTMxMjAyNjEyNV81NzQyMTczNjEzNF8yXzM=_b_B3fb1f7e46f9b877c48f23e4547a63c62.mp4
|
||||
https://txmov2.a.yximgs.com/upic/2020/01/11/00/BMjAyMDAxMTEwMDAwMzZfMTY1NzYyM18yMTU3OTQxNDA3NF8yXzM=_b_B89b021c5baddda1b9f3ce9e7817c7fb9.mp4
|
||||
https://txmov2.a.yximgs.com/upic/2019/12/09/13/BMjAxOTEyMDkxMzU2MDNfMTY1NzYyM18yMDMzMzgzMDQ1NV8yXzM=_b_B89c84e64347127a907a5db9a54730d83.mp4
|
||||
https://txmov2.a.yximgs.com/upic/2021/05/01/20/BMjAyMTA1MDEyMDM3MjVfMTAyOTk4MzU5MF80ODc5NjY2NTM5M18xXzM=_b_Ba6790e3db535269ab0a371b02076c0e1.mp4
|
||||
https://txmov2.a.yximgs.com/upic/2021/03/23/18/BMjAyMTAzMjMxODA1MDRfMTU0NzU2MzQxOF80NjUwMjA0NDgwOF8xXzM=_b_B2f8dbee0688f4556f28c79af69d4de2f.mp4
|
||||
|
||||
BIN
web/imgs/icon-192x192.png
Normal file
BIN
web/imgs/icon-192x192.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.8 KiB |
BIN
web/imgs/icon-512x512.png
Normal file
BIN
web/imgs/icon-512x512.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 30 KiB |
@ -8,6 +8,12 @@
|
||||
<link href="https://testingcf.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
|
||||
<link href="style.css" rel="stylesheet">
|
||||
<link href="https://testingcf.jsdelivr.net/npm/hls.js@1.4.12/dist/hls.min.js" rel="stylesheet">
|
||||
<meta name="theme-color" content="#000000">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="apple-mobile-web-app-title" content="AvHub">
|
||||
<link rel="manifest" href="manifest.json">
|
||||
<link rel="apple-touch-icon" href="imgs/icon-192x192.png">
|
||||
</head>
|
||||
<body class="bg-gradient-to-br from-slate-900 to-slate-800 min-h-screen text-gray-100 transition-colors duration-300">
|
||||
<!-- 在 body 标签下添加 logo -->
|
||||
@ -193,11 +199,11 @@
|
||||
<!-- 添加版权信息 -->
|
||||
<footer class="text-center py-4 text-gray-400 text-xs mt-8">
|
||||
<p>
|
||||
<span class="tab-text" data-zh="版权所有" data-en="Copyright">版权所有</span> © 2024
|
||||
<a href="https://github.com/levywang/avhub" target="_blank" class="text-primary hover:text-primary-hover transition-colors duration-200">
|
||||
<span class="tab-text" data-zh="版权所有" data-en="Copyright">版权所有</span> © 2025
|
||||
<a href="#" target="_blank" class="text-primary hover:text-primary-hover transition-colors duration-200">
|
||||
AvHub
|
||||
</a>
|
||||
</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
23
web/manifest.json
Normal file
23
web/manifest.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"name": "AvHub",
|
||||
"short_name": "AvHub",
|
||||
"description": "R18 Resource Search & Manager",
|
||||
"start_url": "/",
|
||||
"display": "standalone",
|
||||
"background_color": "#141518",
|
||||
"theme_color": "#000000",
|
||||
"icons": [
|
||||
{
|
||||
"src": "imgs/icon-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png",
|
||||
"purpose": "any maskable"
|
||||
},
|
||||
{
|
||||
"src": "imgs/icon-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "any maskable"
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -35,7 +35,7 @@ function switchTab(tabName) {
|
||||
|
||||
// 添加 API 配置
|
||||
const API_CONFIG = {
|
||||
BASE_URL: 'https://api.wwlww.org/v1',
|
||||
BASE_URL: '/api/v1',
|
||||
ENDPOINTS: {
|
||||
SEARCH: '/avcode',
|
||||
COLLECTIONS: '/hacg',
|
||||
@ -1517,3 +1517,16 @@ function showThemeMenu(button) {
|
||||
};
|
||||
document.addEventListener('keydown', handleEscape);
|
||||
}
|
||||
|
||||
// 注册 Service Worker
|
||||
if ('serviceWorker' in navigator) {
|
||||
window.addEventListener('load', () => {
|
||||
navigator.serviceWorker.register('/sw.js')
|
||||
.then(registration => {
|
||||
console.log('ServiceWorker registration successful');
|
||||
})
|
||||
.catch(err => {
|
||||
console.log('ServiceWorker registration failed: ', err);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
71
web/sw.js
Normal file
71
web/sw.js
Normal file
@ -0,0 +1,71 @@
|
||||
const CACHE_NAME = 'avhub-cache-v1';
|
||||
const urlsToCache = [
|
||||
'/',
|
||||
'/index.html',
|
||||
'/style.css',
|
||||
'/script.js',
|
||||
'/manifest.json',
|
||||
'/imgs/favicon.ico',
|
||||
'/imgs/icon-192x192.png',
|
||||
'/imgs/icon-512x512.png',
|
||||
'https://testingcf.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css',
|
||||
'https://testingcf.jsdelivr.net/npm/hls.js@1.4.12/dist/hls.min.js'
|
||||
];
|
||||
|
||||
// 安装 Service Worker
|
||||
self.addEventListener('install', event => {
|
||||
event.waitUntil(
|
||||
caches.open(CACHE_NAME)
|
||||
.then(cache => cache.addAll(urlsToCache))
|
||||
);
|
||||
});
|
||||
|
||||
// 激活 Service Worker
|
||||
self.addEventListener('activate', event => {
|
||||
event.waitUntil(
|
||||
caches.keys().then(cacheNames => {
|
||||
return Promise.all(
|
||||
cacheNames.map(cacheName => {
|
||||
if (cacheName !== CACHE_NAME) {
|
||||
return caches.delete(cacheName);
|
||||
}
|
||||
})
|
||||
);
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
// 处理请求
|
||||
self.addEventListener('fetch', event => {
|
||||
event.respondWith(
|
||||
caches.match(event.request)
|
||||
.then(response => {
|
||||
// 如果在缓存中找到响应,则返回缓存的响应
|
||||
if (response) {
|
||||
return response;
|
||||
}
|
||||
|
||||
// 克隆请求,因为请求是一个流,只能使用一次
|
||||
const fetchRequest = event.request.clone();
|
||||
|
||||
// 发起网络请求
|
||||
return fetch(fetchRequest).then(response => {
|
||||
// 检查是否收到有效的响应
|
||||
if (!response || response.status !== 200 || response.type !== 'basic') {
|
||||
return response;
|
||||
}
|
||||
|
||||
// 克隆响应,因为响应是一个流,只能使用一次
|
||||
const responseToCache = response.clone();
|
||||
|
||||
// 将响应添加到缓存
|
||||
caches.open(CACHE_NAME)
|
||||
.then(cache => {
|
||||
cache.put(event.request, responseToCache);
|
||||
});
|
||||
|
||||
return response;
|
||||
});
|
||||
})
|
||||
);
|
||||
});
|
||||
Loading…
Reference in New Issue
Block a user