Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -15,11 +15,17 @@ 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 +57,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 +74,7 @@ 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 +82,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",
|
|
@@ -450,7 +458,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 +465,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 +480,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 +529,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 +539,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 +550,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/openfree/OpenAI-gpt-oss",
|
| 19 |
+
"https://openfree-AI-Calcurator.static.hf.space",
|
| 20 |
+
"https://huggingface.co/spaces/openfree/AGI-WebNovel-Gallery",
|
| 21 |
+
"https://huggingface.co/spaces/Heartsync/Wan-2.2-ADULT",
|
| 22 |
+
"https://huggingface.co/spaces/ginigen/Wan-2.2-Enhanced",
|
| 23 |
"https://huggingface.co/spaces/openfree/AGI-Screenplay",
|
| 24 |
"https://huggingface.co/spaces/openfree/AGI-WebNovel",
|
| 25 |
"https://huggingface.co/spaces/openfree/AGI-NOVEL",
|
| 26 |
"https://huggingface.co/spaces/fantaxy/AGI-LEADERBOARD",
|
| 27 |
+
"https://cutechicken-3d-airforce-simulator.static.hf.space",
|
| 28 |
+
"https://huggingface.co/spaces/Heartsync/FREE-NSFW-HUB",
|
| 29 |
"https://huggingface.co/spaces/ginipick/Private-AI",
|
| 30 |
"https://huggingface.co/spaces/fantaxy/ofai-flx-logo",
|
| 31 |
"https://huggingface.co/spaces/aiqtech/FLUX-Ghibli-Studio-LoRA",
|
|
|
|
| 57 |
"https://huggingface.co/spaces/openfree/MagicFace-V3",
|
| 58 |
"https://huggingface.co/spaces/Heartsync/adult",
|
| 59 |
"https://huggingface.co/spaces/Heartsync/wan2-1-fast-security",
|
|
|
|
| 60 |
"https://huggingface.co/spaces/seawolf2357/img2vid",
|
| 61 |
"https://huggingface.co/spaces/openfree/image-to-vector",
|
| 62 |
"https://huggingface.co/spaces/openfree/DreamO-video",
|
| 63 |
"https://huggingface.co/spaces/VIDraft/FramePack_rotate_landscape",
|
| 64 |
"https://huggingface.co/spaces/fantaxy/Sound-AI-SFX",
|
| 65 |
"https://huggingface.co/spaces/ginigen/VoiceClone-TTS",
|
| 66 |
+
|
| 67 |
"https://huggingface.co/spaces/Heartsync/NSFW-image",
|
| 68 |
"https://huggingface.co/spaces/Heartsync/NSFW-detection",
|
| 69 |
"https://huggingface.co/spaces/Heartsync/VEO3-RealTime",
|
|
|
|
| 74 |
|
| 75 |
],
|
| 76 |
"BEST": [
|
| 77 |
+
"https://vidraft-ai.static.hf.space",
|
| 78 |
"https://huggingface.co/spaces/MaziyarPanahi/FACTS-Leaderboard",
|
| 79 |
"https://huggingface.co/spaces/ginigen/Flux-Kontext-Style",
|
| 80 |
"https://huggingface.co/spaces/openfree/Cycle-Navigator",
|
|
|
|
| 82 |
"https://huggingface.co/spaces/ginigen/Seedance-Free",
|
| 83 |
"https://huggingface.co/spaces/VIDraft/SOMA-AGI",
|
| 84 |
"https://huggingface.co/spaces/aiqtech/Heatmap-Leaderboard",
|
| 85 |
+
"https://huggingface.co/spaces/Heartsync/PornHUB",
|
| 86 |
+
"https://huggingface.co/spaces/Heartsync/Hentai-Adult",
|
| 87 |
"https://huggingface.co/spaces/VIDraft/DNA-CASINO",
|
| 88 |
"https://huggingface.co/spaces/aiqtech/SOMA-Oriental",
|
| 89 |
"https://huggingface.co/spaces/fantaxy/YTB-TEST",
|
|
|
|
| 458 |
</header>
|
| 459 |
<div class="tabs" id="tabs"></div>
|
| 460 |
<div id="content"></div>
|
|
|
|
| 461 |
<script>
|
| 462 |
// Basic configuration
|
| 463 |
const cats = {{cats|tojson}};
|
|
|
|
| 465 |
const content = document.getElementById('content');
|
| 466 |
let active = "";
|
| 467 |
let currentPage = 1;
|
|
|
|
| 468 |
// Simple utility functions
|
| 469 |
function makeRequest(url, method, data, callback) {
|
| 470 |
const xhr = new XMLHttpRequest();
|
|
|
|
| 480 |
xhr.send();
|
| 481 |
}
|
| 482 |
}
|
|
|
|
| 483 |
function updateTabs() {
|
| 484 |
Array.from(tabs.children).forEach(b => {
|
| 485 |
b.classList.toggle('active', b.dataset.c === active);
|
| 486 |
});
|
| 487 |
}
|
|
|
|
| 488 |
// Tab handlers
|
| 489 |
function loadCategory(cat, page) {
|
| 490 |
if(cat === active && currentPage === page) return;
|
|
|
|
| 529 |
content.innerHTML = html;
|
| 530 |
});
|
| 531 |
}
|
|
|
|
| 532 |
// Create tabs
|
| 533 |
// Special tabs first (Popular, BEST, NEW)
|
| 534 |
['Popular', 'BEST', 'NEW'].forEach(specialCat => {
|
|
|
|
| 539 |
b.onclick = function() { loadCategory(specialCat, 1); };
|
| 540 |
tabs.appendChild(b);
|
| 541 |
});
|
|
|
|
| 542 |
// Regular category tabs
|
| 543 |
cats.forEach(c => {
|
| 544 |
if (!['Popular', 'BEST', 'NEW'].includes(c)) {
|
|
|
|
| 550 |
tabs.appendChild(b);
|
| 551 |
}
|
| 552 |
});
|
|
|
|
| 553 |
// Start with Popular tab
|
| 554 |
loadCategory('Popular', 1);
|
| 555 |
</script>
|