Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -15,7 +15,8 @@ BLOCKED_DOMAINS = [
|
|
15 |
# โโโโโโโโโโโโโโโโโโโโโโโโโโ 2. CURATED CATEGORIES โโโโโโโโโโโโโโโโโโโโโโโโโโ
|
16 |
CATEGORIES = {
|
17 |
"Popular": [
|
18 |
-
"https://huggingface.co/spaces/
|
|
|
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",
|
@@ -163,6 +164,7 @@ CATEGORIES = {
|
|
163 |
|
164 |
],
|
165 |
"NEW": [
|
|
|
166 |
"https://huggingface.co/spaces/ginigen/Flux-Kontext-Style",
|
167 |
"https://cutechicken-3d-airforce-simulator.static.hf.space",
|
168 |
"https://huggingface.co/spaces/ginipick/Private-AI",
|
@@ -458,7 +460,6 @@ body{margin:0;font-family:Nunito,sans-serif;background:#f6f8fb;}
|
|
458 |
</header>
|
459 |
<div class="tabs" id="tabs"></div>
|
460 |
<div id="content"></div>
|
461 |
-
|
462 |
<script>
|
463 |
// Basic configuration
|
464 |
const cats = {{cats|tojson}};
|
@@ -466,7 +467,6 @@ const tabs = document.getElementById('tabs');
|
|
466 |
const content = document.getElementById('content');
|
467 |
let active = "";
|
468 |
let currentPage = 1;
|
469 |
-
|
470 |
// Simple utility functions
|
471 |
function makeRequest(url, method, data, callback) {
|
472 |
const xhr = new XMLHttpRequest();
|
@@ -482,13 +482,11 @@ function makeRequest(url, method, data, callback) {
|
|
482 |
xhr.send();
|
483 |
}
|
484 |
}
|
485 |
-
|
486 |
function updateTabs() {
|
487 |
Array.from(tabs.children).forEach(b => {
|
488 |
b.classList.toggle('active', b.dataset.c === active);
|
489 |
});
|
490 |
}
|
491 |
-
|
492 |
// Tab handlers
|
493 |
function loadCategory(cat, page) {
|
494 |
if(cat === active && currentPage === page) return;
|
@@ -533,7 +531,6 @@ function loadCategory(cat, page) {
|
|
533 |
content.innerHTML = html;
|
534 |
});
|
535 |
}
|
536 |
-
|
537 |
// Create tabs
|
538 |
// Special tabs first (Popular, BEST, NEW)
|
539 |
['Popular', 'BEST', 'NEW'].forEach(specialCat => {
|
@@ -544,7 +541,6 @@ function loadCategory(cat, page) {
|
|
544 |
b.onclick = function() { loadCategory(specialCat, 1); };
|
545 |
tabs.appendChild(b);
|
546 |
});
|
547 |
-
|
548 |
// Regular category tabs
|
549 |
cats.forEach(c => {
|
550 |
if (!['Popular', 'BEST', 'NEW'].includes(c)) {
|
@@ -556,7 +552,6 @@ cats.forEach(c => {
|
|
556 |
tabs.appendChild(b);
|
557 |
}
|
558 |
});
|
559 |
-
|
560 |
// Start with Popular tab
|
561 |
loadCategory('Popular', 1);
|
562 |
</script>
|
|
|
15 |
# โโโโโโโโโโโโโโโโโโโโโโโโโโ 2. CURATED CATEGORIES โโโโโโโโโโโโโโโโโโโโโโโโโโ
|
16 |
CATEGORIES = {
|
17 |
"Popular": [
|
18 |
+
"https://huggingface.co/spaces/VIDraft/gpt-oss-RAG",
|
19 |
+
|
20 |
"https://openfree-AI-Calcurator.static.hf.space",
|
21 |
"https://huggingface.co/spaces/openfree/AGI-WebNovel-Gallery",
|
22 |
"https://huggingface.co/spaces/Heartsync/Wan-2.2-ADULT",
|
|
|
164 |
|
165 |
],
|
166 |
"NEW": [
|
167 |
+
"https://huggingface.co/spaces/openfree/OpenAI-gpt-oss",
|
168 |
"https://huggingface.co/spaces/ginigen/Flux-Kontext-Style",
|
169 |
"https://cutechicken-3d-airforce-simulator.static.hf.space",
|
170 |
"https://huggingface.co/spaces/ginipick/Private-AI",
|
|
|
460 |
</header>
|
461 |
<div class="tabs" id="tabs"></div>
|
462 |
<div id="content"></div>
|
|
|
463 |
<script>
|
464 |
// Basic configuration
|
465 |
const cats = {{cats|tojson}};
|
|
|
467 |
const content = document.getElementById('content');
|
468 |
let active = "";
|
469 |
let currentPage = 1;
|
|
|
470 |
// Simple utility functions
|
471 |
function makeRequest(url, method, data, callback) {
|
472 |
const xhr = new XMLHttpRequest();
|
|
|
482 |
xhr.send();
|
483 |
}
|
484 |
}
|
|
|
485 |
function updateTabs() {
|
486 |
Array.from(tabs.children).forEach(b => {
|
487 |
b.classList.toggle('active', b.dataset.c === active);
|
488 |
});
|
489 |
}
|
|
|
490 |
// Tab handlers
|
491 |
function loadCategory(cat, page) {
|
492 |
if(cat === active && currentPage === page) return;
|
|
|
531 |
content.innerHTML = html;
|
532 |
});
|
533 |
}
|
|
|
534 |
// Create tabs
|
535 |
// Special tabs first (Popular, BEST, NEW)
|
536 |
['Popular', 'BEST', 'NEW'].forEach(specialCat => {
|
|
|
541 |
b.onclick = function() { loadCategory(specialCat, 1); };
|
542 |
tabs.appendChild(b);
|
543 |
});
|
|
|
544 |
// Regular category tabs
|
545 |
cats.forEach(c => {
|
546 |
if (!['Popular', 'BEST', 'NEW'].includes(c)) {
|
|
|
552 |
tabs.appendChild(b);
|
553 |
}
|
554 |
});
|
|
|
555 |
// Start with Popular tab
|
556 |
loadCategory('Popular', 1);
|
557 |
</script>
|