Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -15,11 +15,23 @@ BLOCKED_DOMAINS = [
|
|
15 |
# โโโโโโโโโโโโโโโโโโโโโโโโโโ 2. CURATED CATEGORIES โโโโโโโโโโโโโโโโโโโโโโโโโโ
|
16 |
CATEGORIES = {
|
17 |
"Popular": [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
"https://huggingface.co/spaces/openfree/AGI-Screenplay",
|
19 |
"https://huggingface.co/spaces/openfree/AGI-WebNovel",
|
20 |
"https://huggingface.co/spaces/openfree/AGI-NOVEL",
|
21 |
"https://huggingface.co/spaces/fantaxy/AGI-LEADERBOARD",
|
22 |
-
"https://cutechicken-3d-airforce-simulator.static.hf.space",
|
|
|
23 |
"https://huggingface.co/spaces/ginipick/Private-AI",
|
24 |
"https://huggingface.co/spaces/fantaxy/ofai-flx-logo",
|
25 |
"https://huggingface.co/spaces/aiqtech/FLUX-Ghibli-Studio-LoRA",
|
@@ -51,14 +63,13 @@ CATEGORIES = {
|
|
51 |
"https://huggingface.co/spaces/openfree/MagicFace-V3",
|
52 |
"https://huggingface.co/spaces/Heartsync/adult",
|
53 |
"https://huggingface.co/spaces/Heartsync/wan2-1-fast-security",
|
54 |
-
"https://huggingface.co/spaces/Heartsync/NSFW-Uncensored-REAL",
|
55 |
"https://huggingface.co/spaces/seawolf2357/img2vid",
|
56 |
"https://huggingface.co/spaces/openfree/image-to-vector",
|
57 |
"https://huggingface.co/spaces/openfree/DreamO-video",
|
58 |
"https://huggingface.co/spaces/VIDraft/FramePack_rotate_landscape",
|
59 |
"https://huggingface.co/spaces/fantaxy/Sound-AI-SFX",
|
60 |
"https://huggingface.co/spaces/ginigen/VoiceClone-TTS",
|
61 |
-
|
62 |
"https://huggingface.co/spaces/Heartsync/NSFW-image",
|
63 |
"https://huggingface.co/spaces/Heartsync/NSFW-detection",
|
64 |
"https://huggingface.co/spaces/Heartsync/VEO3-RealTime",
|
@@ -69,6 +80,9 @@ CATEGORIES = {
|
|
69 |
|
70 |
],
|
71 |
"BEST": [
|
|
|
|
|
|
|
72 |
"https://huggingface.co/spaces/MaziyarPanahi/FACTS-Leaderboard",
|
73 |
"https://huggingface.co/spaces/ginigen/Flux-Kontext-Style",
|
74 |
"https://huggingface.co/spaces/openfree/Cycle-Navigator",
|
@@ -76,6 +90,8 @@ CATEGORIES = {
|
|
76 |
"https://huggingface.co/spaces/ginigen/Seedance-Free",
|
77 |
"https://huggingface.co/spaces/VIDraft/SOMA-AGI",
|
78 |
"https://huggingface.co/spaces/aiqtech/Heatmap-Leaderboard",
|
|
|
|
|
79 |
"https://huggingface.co/spaces/VIDraft/DNA-CASINO",
|
80 |
"https://huggingface.co/spaces/aiqtech/SOMA-Oriental",
|
81 |
"https://huggingface.co/spaces/fantaxy/YTB-TEST",
|
@@ -155,6 +171,8 @@ CATEGORIES = {
|
|
155 |
|
156 |
],
|
157 |
"NEW": [
|
|
|
|
|
158 |
"https://huggingface.co/spaces/ginigen/Flux-Kontext-Style",
|
159 |
"https://cutechicken-3d-airforce-simulator.static.hf.space",
|
160 |
"https://huggingface.co/spaces/ginipick/Private-AI",
|
@@ -450,7 +468,6 @@ body{margin:0;font-family:Nunito,sans-serif;background:#f6f8fb;}
|
|
450 |
</header>
|
451 |
<div class="tabs" id="tabs"></div>
|
452 |
<div id="content"></div>
|
453 |
-
|
454 |
<script>
|
455 |
// Basic configuration
|
456 |
const cats = {{cats|tojson}};
|
@@ -458,7 +475,6 @@ const tabs = document.getElementById('tabs');
|
|
458 |
const content = document.getElementById('content');
|
459 |
let active = "";
|
460 |
let currentPage = 1;
|
461 |
-
|
462 |
// Simple utility functions
|
463 |
function makeRequest(url, method, data, callback) {
|
464 |
const xhr = new XMLHttpRequest();
|
@@ -474,13 +490,11 @@ function makeRequest(url, method, data, callback) {
|
|
474 |
xhr.send();
|
475 |
}
|
476 |
}
|
477 |
-
|
478 |
function updateTabs() {
|
479 |
Array.from(tabs.children).forEach(b => {
|
480 |
b.classList.toggle('active', b.dataset.c === active);
|
481 |
});
|
482 |
}
|
483 |
-
|
484 |
// Tab handlers
|
485 |
function loadCategory(cat, page) {
|
486 |
if(cat === active && currentPage === page) return;
|
@@ -525,7 +539,6 @@ function loadCategory(cat, page) {
|
|
525 |
content.innerHTML = html;
|
526 |
});
|
527 |
}
|
528 |
-
|
529 |
// Create tabs
|
530 |
// Special tabs first (Popular, BEST, NEW)
|
531 |
['Popular', 'BEST', 'NEW'].forEach(specialCat => {
|
@@ -536,7 +549,6 @@ function loadCategory(cat, page) {
|
|
536 |
b.onclick = function() { loadCategory(specialCat, 1); };
|
537 |
tabs.appendChild(b);
|
538 |
});
|
539 |
-
|
540 |
// Regular category tabs
|
541 |
cats.forEach(c => {
|
542 |
if (!['Popular', 'BEST', 'NEW'].includes(c)) {
|
@@ -548,7 +560,6 @@ cats.forEach(c => {
|
|
548 |
tabs.appendChild(b);
|
549 |
}
|
550 |
});
|
551 |
-
|
552 |
// Start with Popular tab
|
553 |
loadCategory('Popular', 1);
|
554 |
</script>
|
|
|
15 |
# โโโโโโโโโโโโโโโโโโโโโโโโโโ 2. CURATED CATEGORIES โโโโโโโโโโโโโโโโโโโโโโโโโโ
|
16 |
CATEGORIES = {
|
17 |
"Popular": [
|
18 |
+
"https://huggingface.co/spaces/VIDraft/DNA-Diffusion",
|
19 |
+
"https://huggingface.co/spaces/Heartsync/Nano-Banana",
|
20 |
+
"https://huggingface.co/spaces/ginigen/Hair-Pick",
|
21 |
+
"https://huggingface.co/spaces/openfree/AGI-Screenplay-Pro",
|
22 |
+
"https://huggingface.co/spaces/ginipick/FLUXllama",
|
23 |
+
"https://huggingface.co/spaces/VIDraft/gpt-oss-RAG",
|
24 |
+
|
25 |
+
"https://openfree-AI-Calcurator.static.hf.space",
|
26 |
+
"https://huggingface.co/spaces/openfree/AGI-WebNovel-Gallery",
|
27 |
+
"https://huggingface.co/spaces/Heartsync/Wan-2.2-ADULT",
|
28 |
+
"https://huggingface.co/spaces/ginigen/Wan-2.2-Enhanced",
|
29 |
"https://huggingface.co/spaces/openfree/AGI-Screenplay",
|
30 |
"https://huggingface.co/spaces/openfree/AGI-WebNovel",
|
31 |
"https://huggingface.co/spaces/openfree/AGI-NOVEL",
|
32 |
"https://huggingface.co/spaces/fantaxy/AGI-LEADERBOARD",
|
33 |
+
"https://cutechicken-3d-airforce-simulator.static.hf.space",
|
34 |
+
"https://huggingface.co/spaces/Heartsync/FREE-NSFW-HUB",
|
35 |
"https://huggingface.co/spaces/ginipick/Private-AI",
|
36 |
"https://huggingface.co/spaces/fantaxy/ofai-flx-logo",
|
37 |
"https://huggingface.co/spaces/aiqtech/FLUX-Ghibli-Studio-LoRA",
|
|
|
63 |
"https://huggingface.co/spaces/openfree/MagicFace-V3",
|
64 |
"https://huggingface.co/spaces/Heartsync/adult",
|
65 |
"https://huggingface.co/spaces/Heartsync/wan2-1-fast-security",
|
|
|
66 |
"https://huggingface.co/spaces/seawolf2357/img2vid",
|
67 |
"https://huggingface.co/spaces/openfree/image-to-vector",
|
68 |
"https://huggingface.co/spaces/openfree/DreamO-video",
|
69 |
"https://huggingface.co/spaces/VIDraft/FramePack_rotate_landscape",
|
70 |
"https://huggingface.co/spaces/fantaxy/Sound-AI-SFX",
|
71 |
"https://huggingface.co/spaces/ginigen/VoiceClone-TTS",
|
72 |
+
|
73 |
"https://huggingface.co/spaces/Heartsync/NSFW-image",
|
74 |
"https://huggingface.co/spaces/Heartsync/NSFW-detection",
|
75 |
"https://huggingface.co/spaces/Heartsync/VEO3-RealTime",
|
|
|
80 |
|
81 |
],
|
82 |
"BEST": [
|
83 |
+
"https://huggingface.co/spaces/ginigen/AGI-WebToon-KOREA",
|
84 |
+
"https://huggingface.co/spaces/ginigen/webtoon-studio",
|
85 |
+
"https://vidraft-ai.static.hf.space",
|
86 |
"https://huggingface.co/spaces/MaziyarPanahi/FACTS-Leaderboard",
|
87 |
"https://huggingface.co/spaces/ginigen/Flux-Kontext-Style",
|
88 |
"https://huggingface.co/spaces/openfree/Cycle-Navigator",
|
|
|
90 |
"https://huggingface.co/spaces/ginigen/Seedance-Free",
|
91 |
"https://huggingface.co/spaces/VIDraft/SOMA-AGI",
|
92 |
"https://huggingface.co/spaces/aiqtech/Heatmap-Leaderboard",
|
93 |
+
"https://huggingface.co/spaces/Heartsync/PornHUB",
|
94 |
+
"https://huggingface.co/spaces/Heartsync/Hentai-Adult",
|
95 |
"https://huggingface.co/spaces/VIDraft/DNA-CASINO",
|
96 |
"https://huggingface.co/spaces/aiqtech/SOMA-Oriental",
|
97 |
"https://huggingface.co/spaces/fantaxy/YTB-TEST",
|
|
|
171 |
|
172 |
],
|
173 |
"NEW": [
|
174 |
+
"https://huggingface.co/spaces/ginigen/AGI-Screenplay",
|
175 |
+
"https://huggingface.co/spaces/openfree/OpenAI-gpt-oss",
|
176 |
"https://huggingface.co/spaces/ginigen/Flux-Kontext-Style",
|
177 |
"https://cutechicken-3d-airforce-simulator.static.hf.space",
|
178 |
"https://huggingface.co/spaces/ginipick/Private-AI",
|
|
|
468 |
</header>
|
469 |
<div class="tabs" id="tabs"></div>
|
470 |
<div id="content"></div>
|
|
|
471 |
<script>
|
472 |
// Basic configuration
|
473 |
const cats = {{cats|tojson}};
|
|
|
475 |
const content = document.getElementById('content');
|
476 |
let active = "";
|
477 |
let currentPage = 1;
|
|
|
478 |
// Simple utility functions
|
479 |
function makeRequest(url, method, data, callback) {
|
480 |
const xhr = new XMLHttpRequest();
|
|
|
490 |
xhr.send();
|
491 |
}
|
492 |
}
|
|
|
493 |
function updateTabs() {
|
494 |
Array.from(tabs.children).forEach(b => {
|
495 |
b.classList.toggle('active', b.dataset.c === active);
|
496 |
});
|
497 |
}
|
|
|
498 |
// Tab handlers
|
499 |
function loadCategory(cat, page) {
|
500 |
if(cat === active && currentPage === page) return;
|
|
|
539 |
content.innerHTML = html;
|
540 |
});
|
541 |
}
|
|
|
542 |
// Create tabs
|
543 |
// Special tabs first (Popular, BEST, NEW)
|
544 |
['Popular', 'BEST', 'NEW'].forEach(specialCat => {
|
|
|
549 |
b.onclick = function() { loadCategory(specialCat, 1); };
|
550 |
tabs.appendChild(b);
|
551 |
});
|
|
|
552 |
// Regular category tabs
|
553 |
cats.forEach(c => {
|
554 |
if (!['Popular', 'BEST', 'NEW'].includes(c)) {
|
|
|
560 |
tabs.appendChild(b);
|
561 |
}
|
562 |
});
|
|
|
563 |
// Start with Popular tab
|
564 |
loadCategory('Popular', 1);
|
565 |
</script>
|