Spaces:
Running
Running
| <html lang="fr"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>MegaMarket IA - 985,896,100 Assistants IA</title> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> | |
| <style> | |
| :root { | |
| --primary: #6366f1; | |
| --secondary: #8b5cf6; | |
| --accent: #ec4899; | |
| } | |
| body { | |
| background: linear-gradient(135deg, #0f172a, #020617); | |
| min-height: 100vh; | |
| color: white; | |
| font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; | |
| } | |
| .gradient-text { | |
| background: linear-gradient(90deg, var(--primary), var(--secondary), var(--accent)); | |
| -webkit-background-clip: text; | |
| background-clip: text; | |
| color: transparent; | |
| } | |
| .gradient-border { | |
| border: 2px solid transparent; | |
| background: linear-gradient(#0f172a, #0f172a) padding-box, | |
| linear-gradient(135deg, var(--primary), var(--secondary)) border-box; | |
| } | |
| .service-card { | |
| transition: all 0.3s ease; | |
| background: rgba(15, 23, 42, 0.7); | |
| backdrop-filter: blur(10px); | |
| } | |
| .service-card:hover { | |
| transform: translateY(-5px); | |
| box-shadow: 0 10px 25px rgba(99, 102, 241, 0.3); | |
| } | |
| /* Virtual Scroll Styles */ | |
| .virtual-scroll-container { | |
| height: 70vh; | |
| overflow-y: auto; | |
| position: relative; | |
| } | |
| .virtual-scroll-content { | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| } | |
| .ai-assistant-btn { | |
| transition: all 0.2s ease; | |
| } | |
| .ai-assistant-btn:hover { | |
| transform: scale(1.02); | |
| box-shadow: 0 4px 12px rgba(99, 102, 241, 0.2); | |
| } | |
| /* Loading Animation */ | |
| @keyframes pulse { | |
| 0%, 100% { opacity: 0.6; } | |
| 50% { opacity: 1; } | |
| } | |
| .loading-pulse { | |
| animation: pulse 1.5s infinite; | |
| } | |
| </style> | |
| </head> | |
| <body class="min-h-screen"> | |
| <!-- Main Content --> | |
| <div id="main-content"> | |
| <!-- Header --> | |
| <header class="gradient-border border-b"> | |
| <div class="container mx-auto px-4 py-6"> | |
| <div class="flex flex-col md:flex-row justify-between items-center"> | |
| <div class="flex items-center mb-4 md:mb-0"> | |
| <i class="fas fa-robot text-4xl mr-3 gradient-text"></i> | |
| <h1 class="text-3xl font-bold gradient-text">MegaMarket IA</h1> | |
| </div> | |
| <div class="flex items-center space-x-4"> | |
| <div class="relative"> | |
| <input type="text" placeholder="Rechercher parmi 985,896,100 assistants IA..." | |
| class="w-full bg-slate-800 rounded-full py-3 px-6 pr-12 text-white focus:outline-none focus:ring-2 focus:ring-indigo-500" | |
| id="search-input"> | |
| <button class="absolute right-3 top-1/2 transform -translate-y-1/2 text-slate-400 hover:text-white"> | |
| <i class="fas fa-search"></i> | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </header> | |
| <!-- Main Content --> | |
| <main class="container mx-auto px-4 py-8"> | |
| <!-- Stats --> | |
| <div class="bg-slate-800 rounded-xl p-6 mb-8 gradient-border"> | |
| <div class="grid grid-cols-1 md:grid-cols-4 gap-4 text-center"> | |
| <div> | |
| <div class="text-3xl font-bold gradient-text">985,896,100</div> | |
| <div class="text-slate-400">Assistants IA</div> | |
| </div> | |
| <div> | |
| <div class="text-3xl font-bold gradient-text">24/7</div> | |
| <div class="text-slate-400">Disponibilité</div> | |
| </div> | |
| <div> | |
| <div class="text-3xl font-bold gradient-text">100%</div> | |
| <div class="text-slate-400">Fonctionnels</div> | |
| </div> | |
| <div> | |
| <div class="text-3xl font-bold gradient-text">0.001s</div> | |
| <div class="text-slate-400">Temps de réponse</div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Category Filter --> | |
| <div class="mb-8"> | |
| <h2 class="text-xl font-bold mb-4 gradient-text">Filtrer par catégorie</h2> | |
| <div class="flex flex-wrap gap-2"> | |
| <button class="category-btn px-4 py-2 rounded-full bg-indigo-600 text-white" data-category="all">Tous</button> | |
| <button class="category-btn px-4 py-2 rounded-full bg-slate-700 hover:bg-slate-600" data-category="marketing">Marketing</button> | |
| <button class="category-btn px-4 py-2 rounded-full bg-slate-700 hover:bg-slate-600" data-category="dev">Développement</button> | |
| <button class="category-btn px-4 py-2 rounded-full bg-slate-700 hover:bg-slate-600" data-category="design">Design</button> | |
| <button class="category-btn px-4 py-2 rounded-full bg-slate-700 hover:bg-slate-600" data-category="writing">Rédaction</button> | |
| <button class="category-btn px-4 py-2 rounded-full bg-slate-700 hover:bg-slate-600" data-category="video">Vidéo</button> | |
| <button class="category-btn px-4 py-2 rounded-full bg-slate-700 hover:bg-slate-600" data-category="audio">Audio</button> | |
| </div> | |
| </div> | |
| <!-- AI Assistants Grid --> | |
| <div class="mb-4 flex justify-between items-center"> | |
| <h2 class="text-xl font-bold gradient-text">Nos 985,896,100 Assistants IA</h2> | |
| <div class="text-slate-400" id="visible-count">Affichage 1-50 sur 985,896,100</div> | |
| </div> | |
| <!-- Virtual Scroll Container --> | |
| <div class="virtual-scroll-container gradient-border rounded-xl p-4 mb-8" id="assistants-container"> | |
| <div id="assistants-content" class="virtual-scroll-content"> | |
| <!-- Les boutons seront générés dynamiquement ici --> | |
| </div> | |
| </div> | |
| <!-- Loading Indicator --> | |
| <div id="loading-indicator" class="text-center py-8 loading-pulse"> | |
| <i class="fas fa-circle-notch fa-spin text-3xl gradient-text mr-2"></i> | |
| <span class="text-lg">Chargement des assistants IA...</span> | |
| </div> | |
| </main> | |
| </div> | |
| <!-- AI Assistant Modal --> | |
| <div id="assistant-modal" class="fixed inset-0 z-50 flex items-center justify-center hidden bg-black bg-opacity-80"> | |
| <div class="bg-slate-800 rounded-xl p-6 max-w-2xl w-full mx-4 gradient-border"> | |
| <div class="flex justify-between items-start mb-4"> | |
| <div> | |
| <h3 id="modal-assistant-name" class="text-2xl font-bold gradient-text">Assistant IA</h3> | |
| <div id="modal-assistant-category" class="text-sm text-slate-400">Catégorie</div> | |
| </div> | |
| <button id="close-modal" class="text-slate-400 hover:text-white text-2xl">×</button> | |
| </div> | |
| <div id="modal-assistant-description" class="text-slate-300 mb-6"> | |
| Description de l'assistant IA... | |
| </div> | |
| <div class="grid grid-cols-2 gap-4 mb-6"> | |
| <div> | |
| <div class="text-sm text-slate-400">ID</div> | |
| <div id="modal-assistant-id" class="font-mono">#00000000</div> | |
| </div> | |
| <div> | |
| <div class="text-sm text-slate-400">Version</div> | |
| <div id="modal-assistant-version">1.0.0</div> | |
| </div> | |
| <div> | |
| <div class="text-sm text-slate-400">Créé le</div> | |
| <div id="modal-assistant-created">01/01/2023</div> | |
| </div> | |
| <div> | |
| <div class="text-sm text-slate-400">Utilisations</div> | |
| <div id="modal-assistant-uses">1,234,567</div> | |
| </div> | |
| </div> | |
| <div class="flex flex-wrap gap-4"> | |
| <button id="launch-assistant" class="flex-1 bg-indigo-600 hover:bg-indigo-700 text-white font-bold py-3 px-6 rounded-lg transition-colors"> | |
| <i class="fas fa-play mr-2"></i> Lancer l'assistant | |
| </button> | |
| <button class="bg-slate-700 hover:bg-slate-600 text-white font-bold py-3 px-6 rounded-lg transition-colors"> | |
| <i class="fas fa-star mr-2"></i> Favoris | |
| </button> | |
| <button class="bg-slate-700 hover:bg-slate-600 text-white font-bold py-3 px-6 rounded-lg transition-colors"> | |
| <i class="fas fa-share-alt mr-2"></i> Partager | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| <script> | |
| // Configuration | |
| const TOTAL_ASSISTANTS = 985896100; | |
| const VISIBLE_ITEMS = 50; | |
| const ITEM_HEIGHT = 60; | |
| // Catégories d'assistants IA | |
| const CATEGORIES = [ | |
| { id: 'marketing', name: 'Marketing', color: 'bg-purple-600' }, | |
| { id: 'dev', name: 'Développement', color: 'bg-blue-600' }, | |
| { id: 'design', name: 'Design', color: 'bg-pink-600' }, | |
| { id: 'writing', name: 'Rédaction', color: 'bg-green-600' }, | |
| { id: 'video', name: 'Vidéo', color: 'bg-red-600' }, | |
| { id: 'audio', name: 'Audio', color: 'bg-yellow-600' } | |
| ]; | |
| // Fonctions utilitaires | |
| function formatNumber(num) { | |
| return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); | |
| } | |
| function randomDate(start, end) { | |
| return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime())).toLocaleDateString('fr-FR'); | |
| } | |
| function generateRandomAssistant(id) { | |
| const category = CATEGORIES[Math.floor(Math.random() * CATEGORIES.length)]; | |
| const versions = ['1.0.0', '1.1.0', '2.0.0', '2.1.3', '3.0.0-beta']; | |
| return { | |
| id: '#' + id.toString().padStart(8, '0'), | |
| name: `Assistant IA ${formatNumber(id)}`, | |
| category: category.id, | |
| categoryName: category.name, | |
| color: category.color, | |
| description: `Cet assistant IA spécialisé en ${category.name.toLowerCase()} vous aidera à accomplir vos tâches avec une précision de ${Math.floor(Math.random() * 30) + 70}%.`, | |
| version: versions[Math.floor(Math.random() * versions.length)], | |
| created: randomDate(new Date(2020, 0, 1), new Date()), | |
| uses: Math.floor(Math.random() * 10000000) | |
| }; | |
| } | |
| // Éléments du DOM | |
| const assistantsContainer = document.getElementById('assistants-container'); | |
| const assistantsContent = document.getElementById('assistants-content'); | |
| const loadingIndicator = document.getElementById('loading-indicator'); | |
| const visibleCount = document.getElementById('visible-count'); | |
| const categoryButtons = document.querySelectorAll('.category-btn'); | |
| // Modal elements | |
| const assistantModal = document.getElementById('assistant-modal'); | |
| const closeModalBtn = document.getElementById('close-modal'); | |
| const launchAssistantBtn = document.getElementById('launch-assistant'); | |
| // Variables d'état | |
| let currentCategory = 'all'; | |
| let scrollPosition = 0; | |
| let renderedItems = []; | |
| // Initialisation du défilement virtuel | |
| function initVirtualScroll() { | |
| // Définir la hauteur totale du contenu | |
| assistantsContent.style.height = `${TOTAL_ASSISTANTS * ITEM_HEIGHT}px`; | |
| // Rendre les premiers éléments | |
| updateVisibleItems(); | |
| // Configurer l'écouteur de défilement | |
| assistantsContainer.addEventListener('scroll', () => { | |
| scrollPosition = assistantsContainer.scrollTop; | |
| updateVisibleItems(); | |
| }); | |
| // Masquer l'indicateur de chargement après un court délai | |
| setTimeout(() => { | |
| loadingIndicator.classList.add('hidden'); | |
| }, 1500); | |
| } | |
| // Mettre à jour les éléments visibles | |
| function updateVisibleItems() { | |
| const startIndex = Math.floor(scrollPosition / ITEM_HEIGHT); | |
| const endIndex = Math.min(startIndex + VISIBLE_ITEMS, TOTAL_ASSISTANTS); | |
| // Mettre à jour le compteur visible | |
| visibleCount.textContent = `Affichage ${formatNumber(startIndex + 1)}-${formatNumber(endIndex)} sur ${formatNumber(TOTAL_ASSISTANTS)}`; | |
| // Générer les nouveaux éléments à afficher | |
| const newItems = []; | |
| for (let i = startIndex; i < endIndex; i++) { | |
| newItems.push(createAssistantButton(i + 1)); | |
| } | |
| // Mettre à jour le DOM | |
| assistantsContent.innerHTML = ''; | |
| assistantsContent.style.transform = `translateY(${startIndex * ITEM_HEIGHT}px)`; | |
| newItems.forEach(item => assistantsContent.appendChild(item)); | |
| renderedItems = newItems; | |
| } | |
| // Créer un bouton d'assistant IA | |
| function createAssistantButton(id) { | |
| const assistant = generateRandomAssistant(id); | |
| const button = document.createElement('button'); | |
| button.className = `ai-assistant-btn w-full mb-2 p-4 rounded-lg flex items-center justify-between ${assistant.color} bg-opacity-20 hover:bg-opacity-30 transition-all`; | |
| button.dataset.id = id; | |
| button.dataset.category = assistant.category; | |
| button.innerHTML = ` | |
| <div class="flex items-center"> | |
| <div class="w-10 h-10 rounded-full ${assistant.color} flex items-center justify-center mr-4"> | |
| <i class="fas fa-robot text-white"></i> | |
| </div> | |
| <div> | |
| <div class="text-left font-bold">${assistant.name}</div> | |
| <div class="text-xs text-slate-300">${assistant.categoryName}</div> | |
| </div> | |
| </div> | |
| <div class="text-xs text-slate-300">${assistant.id}</div> | |
| `; | |
| button.addEventListener('click', () => openAssistantModal(assistant)); | |
| return button; | |
| } | |
| // Filtrer par catégorie | |
| function filterByCategory(category) { | |
| currentCategory = category; | |
| // Mettre à jour les boutons de catégorie | |
| categoryButtons.forEach(btn => { | |
| if (btn.dataset.category === category) { | |
| btn.classList.remove('bg-slate-700'); | |
| btn.classList.add('bg-indigo-600'); | |
| } else { | |
| btn.classList.remove('bg-indigo-600'); | |
| btn.classList.add('bg-slate-700'); | |
| } | |
| }); | |
| // Recréer les éléments visibles avec le filtre | |
| updateVisibleItems(); | |
| } | |
| // Ouvrir la modal d'assistant | |
| function openAssistantModal(assistant) { | |
| document.getElementById('modal-assistant-name').textContent = assistant.name; | |
| document.getElementById('modal-assistant-category').textContent = assistant.categoryName; | |
| document.getElementById('modal-assistant-description').textContent = assistant.description; | |
| document.getElementById('modal-assistant-id').textContent = assistant.id; | |
| document.getElementById('modal-assistant-version').textContent = assistant.version; | |
| document.getElementById('modal-assistant-created').textContent = assistant.created; | |
| document.getElementById('modal-assistant-uses').textContent = formatNumber(assistant.uses); | |
| assistantModal.classList.remove('hidden'); | |
| } | |
| // Fermer la modal | |
| function closeAssistantModal() { | |
| assistantModal.classList.add('hidden'); | |
| } | |
| // Lancer un assistant IA (simulation) | |
| function launchAssistant() { | |
| const assistantName = document.getElementById('modal-assistant-name').textContent; | |
| alert(`Lancement de ${assistantName} dans une nouvelle fenêtre...`); | |
| // Simuler l'ouverture dans une nouvelle fenêtre | |
| const newWindow = window.open('', '_blank'); | |
| if (newWindow) { | |
| newWindow.document.write(` | |
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <title>${assistantName}</title> | |
| <style> | |
| body { | |
| font-family: Arial, sans-serif; | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| height: 100vh; | |
| background: linear-gradient(135deg, #f5f7fa, #c3cfe2); | |
| margin: 0; | |
| } | |
| .assistant-container { | |
| text-align: center; | |
| padding: 2rem; | |
| background: white; | |
| border-radius: 1rem; | |
| box-shadow: 0 10px 25px rgba(0,0,0,0.1); | |
| max-width: 500px; | |
| width: 90%; | |
| } | |
| h1 { | |
| color: #4f46e5; | |
| margin-bottom: 1rem; | |
| } | |
| p { | |
| color: #6b7280; | |
| margin-bottom: 2rem; | |
| } | |
| .loading { | |
| display: inline-block; | |
| width: 50px; | |
| height: 50px; | |
| border: 5px solid rgba(79, 70, 229, 0.3); | |
| border-radius: 50%; | |
| border-top-color: #4f46e5; | |
| animation: spin 1s ease-in-out infinite; | |
| } | |
| @keyframes spin { | |
| to { transform: rotate(360deg); } | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <div class="assistant-container"> | |
| <h1>${assistantName}</h1> | |
| <p>Chargement de l'assistant IA spécialisé...</p> | |
| <div class="loading"></div> | |
| <p class="mt-4">Cette fenêtre simule l'interface d'un assistant IA réel.</p> | |
| </div> | |
| <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=docto41/hyper-assistant-ia" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
| </html> |