Spaces:
Running
Running
| <html lang="fr"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Annuaire Premium - Monétisation Automatique</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> | |
| @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap'); | |
| body { | |
| font-family: 'Poppins', sans-serif; | |
| background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%); | |
| color: #ffffff; | |
| } | |
| .glass-card { | |
| background: rgba(255, 255, 255, 0.05); | |
| backdrop-filter: blur(10px); | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); | |
| } | |
| .gradient-text { | |
| background: linear-gradient(90deg, #3b82f6, #8b5cf6); | |
| -webkit-background-clip: text; | |
| background-clip: text; | |
| color: transparent; | |
| } | |
| .pulse-animation { | |
| animation: pulse 2s infinite; | |
| } | |
| @keyframes pulse { | |
| 0% { transform: scale(1); } | |
| 50% { transform: scale(1.05); } | |
| 100% { transform: scale(1); } | |
| } | |
| .floating { | |
| animation: floating 6s ease-in-out infinite; | |
| } | |
| @keyframes floating { | |
| 0% { transform: translateY(0px); } | |
| 50% { transform: translateY(-15px); } | |
| 100% { transform: translateY(0px); } | |
| } | |
| .btn-hover-effect { | |
| transition: all 0.3s; | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .btn-hover-effect:after { | |
| content: ""; | |
| position: absolute; | |
| top: 0; | |
| left: -100%; | |
| width: 100%; | |
| height: 100%; | |
| background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent); | |
| transition: all 0.5s; | |
| } | |
| .btn-hover-effect:hover:after { | |
| left: 100%; | |
| } | |
| .service-card { | |
| transition: all 0.3s; | |
| transform: perspective(1000px) rotateX(0deg); | |
| } | |
| .service-card:hover { | |
| transform: perspective(1000px) rotateX(10deg); | |
| box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.3); | |
| } | |
| /* Animation pour le compteur */ | |
| @keyframes count-up { | |
| from { opacity: 0; transform: translateY(20px); } | |
| to { opacity: 1; transform: translateY(0); } | |
| } | |
| .count-up { | |
| animation: count-up 1.5s ease-out forwards; | |
| } | |
| </style> | |
| </head> | |
| <body class="min-h-screen"> | |
| <!-- Robot de Monétisation --> | |
| <div id="monetizationBot" class="fixed bottom-6 right-6 z-50 floating"> | |
| <div class="relative"> | |
| <div class="w-16 h-16 bg-gradient-to-br from-purple-600 to-blue-500 rounded-full flex items-center justify-center shadow-xl"> | |
| <i class="fas fa-robot text-2xl text-white"></i> | |
| </div> | |
| <div class="absolute -top-2 -right-2 w-6 h-6 bg-green-500 rounded-full flex items-center justify-center text-xs font-bold pulse-animation"> | |
| $$$ | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Notification de Gains --> | |
| <div id="earningsNotification" class="fixed top-4 right-4 glass-card px-4 py-2 rounded-lg shadow-lg hidden z-50"> | |
| <div class="flex items-center"> | |
| <i class="fas fa-coins text-yellow-400 mr-2"></i> | |
| <span class="text-sm">+$0.05 gagnés</span> | |
| </div> | |
| </div> | |
| <!-- Overlay de chargement --> | |
| <div id="loadingOverlay" class="fixed inset-0 bg-black/90 z-50 flex flex-col items-center justify-center"> | |
| <div class="text-center max-w-2xl px-4"> | |
| <div class="w-24 h-24 border-4 border-blue-500 border-t-transparent rounded-full animate-spin mb-8 mx-auto"></div> | |
| <h2 class="text-3xl font-bold mb-4 gradient-text">Activation du système de monétisation</h2> | |
| <p class="text-xl mb-6">Chargement des <span id="loadingCount" class="font-bold">4,987,897</span> services premium...</p> | |
| <div class="w-full bg-gray-700 rounded-full h-2.5 mb-6"> | |
| <div id="loadingBar" class="bg-gradient-to-r from-blue-500 to-purple-600 h-2.5 rounded-full" style="width: 0%"></div> | |
| </div> | |
| <p class="text-sm opacity-80">Optimisation des revenus en cours. Veuillez patienter...</p> | |
| </div> | |
| </div> | |
| <div class="container mx-auto px-4 py-8"> | |
| <!-- Header Premium --> | |
| <header class="text-center mb-12"> | |
| <div class="glass-card inline-block px-6 py-2 rounded-full mb-6"> | |
| <span class="text-sm font-medium gradient-text">MONÉTISATION ACTIVE</span> | |
| </div> | |
| <h1 class="text-5xl md:text-6xl font-bold mb-4 gradient-text"> | |
| Annuaire <span class="text-white">Premium</span> | |
| </h1> | |
| <p class="text-xl opacity-90 max-w-2xl mx-auto"> | |
| <span id="totalServicesCount" class="font-bold text-blue-400">4,987,897</span> services générateurs de revenus activés | |
| </p> | |
| <!-- Stats de Monétisation --> | |
| <div class="flex justify-center gap-6 mt-8"> | |
| <div class="glass-card px-6 py-3 rounded-lg text-center min-w-[180px]"> | |
| <div class="text-2xl font-bold text-green-400">$<span id="currentEarnings">0.00</span></div> | |
| <div class="text-xs opacity-80">Gains actuels</div> | |
| </div> | |
| <div class="glass-card px-6 py-3 rounded-lg text-center min-w-[180px]"> | |
| <div class="text-2xl font-bold text-blue-400"><span id="totalClicks">0</span></div> | |
| <div class="text-xs opacity-80">Clics aujourd'hui</div> | |
| </div> | |
| <div class="glass-card px-6 py-3 rounded-lg text-center min-w-[180px]"> | |
| <div class="text-2xl font-bold text-purple-400"><span id="activeUsers">1</span></div> | |
| <div class="text-xs opacity-80">Utilisateurs actifs</div> | |
| </div> | |
| </div> | |
| <!-- Barre de Recherche Premium --> | |
| <div class="max-w-3xl mx-auto mt-8 relative"> | |
| <div class="glass-card rounded-xl p-1"> | |
| <div class="flex items-center"> | |
| <input type="text" id="searchInput" placeholder="Rechercher un service rentable..." | |
| class="w-full bg-transparent py-4 px-6 pr-12 text-white placeholder-white/70 focus:outline-none text-lg"> | |
| <button class="absolute right-6 text-white/70 hover:text-white"> | |
| <i class="fas fa-search text-xl"></i> | |
| </button> | |
| </div> | |
| </div> | |
| <p class="text-sm mt-3 opacity-80"> | |
| <span id="visibleCount">500</span> services affichés - <span class="text-green-400">Taux de monétisation: 98.7%</span> | |
| </p> | |
| </div> | |
| <!-- Catégories Premium --> | |
| <div class="flex flex-wrap justify-center gap-3 mt-8"> | |
| <button class="category-btn px-5 py-2.5 glass-card rounded-full text-sm font-medium hover:bg-white/10 transition-all btn-hover-effect" data-category="all"> | |
| <i class="fas fa-star mr-2 text-yellow-400"></i> Tous Premium | |
| </button> | |
| <button class="category-btn px-5 py-2.5 glass-card rounded-full text-sm font-medium hover:bg-white/10 transition-all btn-hover-effect" data-category="high-earning"> | |
| <i class="fas fa-coins mr-2 text-yellow-400"></i> Haut revenu | |
| </button> | |
| <button class="category-btn px-5 py-2.5 glass-card rounded-full text-sm font-medium hover:bg-white/10 transition-all btn-hover-effect" data-category="affiliate"> | |
| <i class="fas fa-link mr-2 text-blue-400"></i> Affiliation | |
| </button> | |
| <button class="category-btn px-5 py-2.5 glass-card rounded-full text-sm font-medium hover:bg-white/10 transition-all btn-hover-effect" data-category="ads"> | |
| <i class="fas fa-ad mr-2 text-green-400"></i> Publicité | |
| </button> | |
| <button class="category-btn px-5 py-2.5 glass-card rounded-full text-sm font-medium hover:bg-white/10 transition-all btn-hover-effect" data-category="crypto"> | |
| <i class="fas fa-bitcoin-sign mr-2 text-purple-400"></i> Crypto | |
| </button> | |
| </div> | |
| </header> | |
| <!-- Contenu Principal --> | |
| <main> | |
| <!-- Section VIP --> | |
| <div class="glass-card rounded-xl p-6 mb-8"> | |
| <div class="flex flex-col md:flex-row items-center justify-between"> | |
| <div> | |
| <h2 class="text-2xl font-bold mb-2"><i class="fas fa-crown text-yellow-400 mr-2"></i> Services VIP</h2> | |
| <p class="opacity-80">Accédez à nos partenaires les plus rentables avec des commissions jusqu'à 75%</p> | |
| </div> | |
| <button class="mt-4 md:mt-0 px-6 py-3 bg-gradient-to-r from-yellow-500 to-yellow-600 rounded-lg font-medium text-black hover:from-yellow-400 hover:to-yellow-500 transition-all btn-hover-effect"> | |
| <i class="fas fa-lock-open mr-2"></i> Débloquer VIP | |
| </button> | |
| </div> | |
| </div> | |
| <!-- Grille de Services --> | |
| <div id="servicesContainer" class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6"> | |
| <!-- Les services seront générés ici par JavaScript --> | |
| </div> | |
| <!-- Pagination Premium --> | |
| <div class="flex justify-center mt-12"> | |
| <nav class="glass-card rounded-lg p-1"> | |
| <ul class="flex items-center -space-x-px"> | |
| <li> | |
| <button class="px-4 py-3 rounded-l-lg hover:bg-white/10 transition"> | |
| <i class="fas fa-chevron-left"></i> | |
| </button> | |
| </li> | |
| <li> | |
| <button class="px-4 py-3 bg-blue-600 rounded-md mx-1">1</button> | |
| </li> | |
| <li> | |
| <button class="px-4 py-3 hover:bg-white/10 rounded-md mx-1">2</button> | |
| </li> | |
| <li> | |
| <button class="px-4 py-3 hover:bg-white/10 rounded-md mx-1">3</button> | |
| </li> | |
| <li> | |
| <span class="px-2">...</span> | |
| </li> | |
| <li> | |
| <button class="px-4 py-3 hover:bg-white/10 rounded-md mx-1">24</button> | |
| </li> | |
| <li> | |
| <button class="px-4 py-3 rounded-r-lg hover:bg-white/10 transition"> | |
| <i class="fas fa-chevron-right"></i> | |
| </button> | |
| </li> | |
| </ul> | |
| </nav> | |
| </div> | |
| </main> | |
| <!-- Footer Premium --> | |
| <footer class="mt-20 pt-10 border-t border-white/10"> | |
| <div class="grid grid-cols-1 md:grid-cols-4 gap-8"> | |
| <div> | |
| <h3 class="text-lg font-bold mb-4">Monétisation</h3> | |
| <ul class="space-y-2"> | |
| <li><a href="#" class="opacity-80 hover:opacity-100 hover:text-blue-400 transition">Comment ça marche</a></li> | |
| <li><a href="#" class="opacity-80 hover:opacity-100 hover:text-blue-400 transition">Statistiques</a></li> | |
| <li><a href="#" class="opacity-80 hover:opacity-100 hover:text-blue-400 transition">Paiements</a></li> | |
| </ul> | |
| </div> | |
| <div> | |
| <h3 class="text-lg font-bold mb-4">Services</h3> | |
| <ul class="space-y-2"> | |
| <li><a href="#" class="opacity-80 hover:opacity-100 hover:text-blue-400 transition">Top rentables</a></li> | |
| <li><a href="#" class="opacity-80 hover:opacity-100 hover:text-blue-400 transition">Nouveautés</a></li> | |
| <li><a href="#" class="opacity-80 hover:opacity-100 hover:text-blue-400 transition">VIP</a></li> | |
| </ul> | |
| </div> | |
| <div> | |
| <h3 class="text-lg font-bold mb-4">Affiliation</h3> | |
| <ul class="space-y-2"> | |
| <li><a href="#" class="opacity-80 hover:opacity-100 hover:text-blue-400 transition">Devenir partenaire</a></li> | |
| <li><a href="#" class="opacity-80 hover:opacity-100 hover:text-blue-400 transition">Programme de parrainage</a></li> | |
| <li><a href="#" class="opacity-80 hover:opacity-100 hover:text-blue-400 transition">Ressources</a></li> | |
| </ul> | |
| </div> | |
| <div> | |
| <h3 class="text-lg font-bold mb-4">Contact</h3> | |
| <div class="flex space-x-4 mb-4"> | |
| <a href="#" class="w-10 h-10 glass-card rounded-full flex items-center justify-center hover:bg-blue-600 transition"> | |
| <i class="fab fa-facebook-f"></i> | |
| </a> | |
| <a href="#" class="w-10 h-10 glass-card rounded-full flex items-center justify-center hover:bg-blue-400 transition"> | |
| <i class="fab fa-twitter"></i> | |
| </a> | |
| <a href="#" class="w-10 h-10 glass-card rounded-full flex items-center justify-center hover:bg-purple-600 transition"> | |
| <i class="fab fa-instagram"></i> | |
| </a> | |
| </div> | |
| <p class="text-sm opacity-80">support@annuairepremium.com</p> | |
| </div> | |
| </div> | |
| <div class="border-t border-white/10 mt-8 pt-8 text-center"> | |
| <p>© 2023 Annuaire Premium - Système de monétisation automatisé</p> | |
| <p class="text-sm mt-2 opacity-80"> | |
| <span class="pulse-animation"> | |
| <i class="fas fa-circle text-green-500 text-xs mr-1"></i> Monétisation active: $<span id="liveEarnings">0.00</span>/min | |
| </span> | |
| </p> | |
| </div> | |
| </footer> | |
| </div> | |
| <script> | |
| // Services Premium avec taux de monétisation | |
| const premiumServices = [ | |
| { | |
| name: "Amazon Affiliate", | |
| url: "https://www.amazon.com", | |
| category: "high-earning", | |
| icon: "shopping-cart", | |
| rate: 0.15, | |
| commission: "4-10%" | |
| }, | |
| { | |
| name: "eBay Partner", | |
| url: "https://www.ebay.com", | |
| category: "high-earning", | |
| icon: "shopping-bag", | |
| rate: 0.12, | |
| commission: "5-8%" | |
| }, | |
| { | |
| name: "Crypto.com", | |
| url: "https://crypto.com", | |
| category: "crypto", | |
| icon: "bitcoin-sign", | |
| rate: 0.20, | |
| commission: "$25 par inscription" | |
| }, | |
| { | |
| name: "Binance Affiliate", | |
| url: "https://www.binance.com", | |
| category: "crypto", | |
| icon: "chart-line", | |
| rate: 0.25, | |
| commission: "40% des frais" | |
| }, | |
| { | |
| name: "Shopify Partner", | |
| url: "https://www.shopify.com", | |
| category: "affiliate", | |
| icon: "store", | |
| rate: 0.18, | |
| commission: "$58 par vente" | |
| }, | |
| { | |
| name: "AdSense Premium", | |
| url: "https://www.google.com/adsense", | |
| category: "ads", | |
| icon: "ad", | |
| rate: 0.08, | |
| commission: "68% du revenu" | |
| }, | |
| { | |
| name: "ClickBank VIP", | |
| url: "https://www.clickbank.com", | |
| category: "high-earning", | |
| icon: "money-bill-wave", | |
| rate: 0.30, | |
| commission: "Jusqu'à 75%" | |
| }, | |
| { | |
| name: "Bluehost Affiliate", | |
| url: "https://www.bluehost.com", | |
| category: "affiliate", | |
| icon: "server", | |
| rate: 0.22, | |
| commission: "$65 par vente" | |
| }, | |
| { | |
| name: "SEMrush Pro", | |
| url: "https://www.semrush.com", | |
| category: "high-earning", | |
| icon: "search-dollar", | |
| rate: 0.15, | |
| commission: "40% récurrent" | |
| }, | |
| { | |
| name: "Udemy Partners", | |
| url: "https://www.udemy.com", | |
| category: "affiliate", | |
| icon: "graduation-cap", | |
| rate: 0.10, | |
| commission: "10% par vente" | |
| }, | |
| { | |
| name: "HubSpot Sales", | |
| url: "https://www.hubspot.com", | |
| category: "high-earning", | |
| icon: "hubspot", | |
| rate: 0.28, | |
| commission: "$100-1000" | |
| }, | |
| { | |
| name: "Squarespace", | |
| url: "https://www.squarespace.com", | |
| category: "affiliate", | |
| icon: "square", | |
| rate: 0.12, | |
| commission: "$20-100" | |
| } | |
| ]; | |
| // Générer une grande liste de services avec monétisation (4,987,897 services) | |
| function generateMassiveMonetizedServices() { | |
| const massiveList = []; | |
| const totalServices = 4987897; // Exactement 4,987,897 services | |
| const baseCount = premiumServices.length; | |
| // Créer des variations pour chaque service de base | |
| for (let i = 0; i < totalServices; i++) { | |
| const baseService = premiumServices[i % baseCount]; | |
| // Créer une variation unique pour chaque service | |
| const variation = { | |
| ...baseService, | |
| name: `${baseService.name} #${i+1}`, | |
| url: `${baseService.url}?ref=${i}`, | |
| rate: Math.min(0.5, baseService.rate * (0.8 + Math.random() * 0.4)), // Variation des taux | |
| commission: i % 5 === 0 ? baseService.commission : | |
| `${Math.floor(5 + Math.random() * 20)}%` // Variation des commissions | |
| }; | |
| massiveList.push(variation); | |
| } | |
| return massiveList; | |
| } | |
| // Variables globales | |
| let allServices = generateMassiveMonetizedServices(); // 4,987,897 services | |
| let currentServices = allServices.slice(0, 12); // Afficher 12 initialement | |
| let currentCategory = 'all'; | |
| let totalEarnings = 0; | |
| let totalClicks = 0; | |
| let activeUsers = 1; | |
| let earningsPerMinute = 0; | |
| // Robot de monétisation | |
| const monetizationBot = document.getElementById('monetizationBot'); | |
| const earningsNotification = document.getElementById('earningsNotification'); | |
| const loadingOverlay = document.getElementById('loadingOverlay'); | |
| const loadingBar = document.getElementById('loadingBar'); | |
| const loadingCount = document.getElementById('loadingCount'); | |
| const totalServicesCount = document.getElementById('totalServicesCount'); | |
| // Simuler le chargement des 4,987,897 services | |
| function simulateMassiveLoading() { | |
| let loaded = 0; | |
| const total = 4987897; | |
| const interval = setInterval(() => { | |
| loaded += 498789; // Charger par paquets pour l'animation | |
| if (loaded > total) loaded = total; | |
| // Mettre à jour la barre de progression | |
| const percent = Math.min(100, (loaded / total) * 100); | |
| loadingBar.style.width = `${percent}%`; | |
| // Mettre à jour le compteur avec animation | |
| loadingCount.textContent = loaded.toLocaleString('fr-FR'); | |
| loadingCount.classList.add('count-up'); | |
| setTimeout(() => loadingCount.classList.remove('count-up'), 1000); | |
| // Terminer le chargement | |
| if (loaded >= total) { | |
| clearInterval(interval); | |
| setTimeout(() => { | |
| loadingOverlay.classList.add('opacity-0'); | |
| setTimeout(() => { | |
| loadingOverlay.classList.add('hidden'); | |
| // Activer la monétisation automatique | |
| activateAutoMonetization(); | |
| }, 500); | |
| }, 1000); | |
| } | |
| }, 300); | |
| } | |
| // Activer la monétisation automatique | |
| function activateAutoMonetization() { | |
| // Mettre à jour le compteur total avec animation | |
| totalServicesCount.classList.add('count-up'); | |
| // Simuler des utilisateurs actifs | |
| setInterval(() => { | |
| activeUsers += Math.floor(Math.random() * 5) - 2; // Variation entre -2 et +2 | |
| activeUsers = Math.max(1, activeUsers); | |
| document.getElementById('activeUsers').textContent = activeUsers.toLocaleString('fr-FR'); | |
| // Mettre à jour les gains par minute en fonction des utilisateurs | |
| earningsPerMinute = activeUsers * 0.35 * (1 + Math.random() * 0.8); | |
| document.getElementById('liveEarnings').textContent = earningsPerMinute.toFixed(2); | |
| }, 30000); | |
| // Simuler des gains automatiques | |
| setInterval(() => { | |
| // Gains basés sur les utilisateurs actifs et les 4,987,897 services | |
| const increment = (earningsPerMinute / 60) * (1 + Math.random() * 0.5); | |
| totalEarnings += increment; | |
| // Mettre à jour l'affichage | |
| document.getElementById('currentEarnings').textContent = totalEarnings.toFixed(2); | |
| document.getElementById('liveEarnings').textContent = earningsPerMinute.toFixed(2); | |
| // Générer des clics aléatoires sur les services | |
| if (Math.random() > 0.7) { | |
| simulateRandomClick(); | |
| } | |
| }, 1000); | |
| // Animer le robot | |
| animateBot(); | |
| } | |
| // Simuler un clic aléatoire sur un service | |
| function simulateRandomClick() { | |
| const randomService = allServices[Math.floor(Math.random() * allServices.length)]; | |
| const earnings = randomService.rate * (0.03 + Math.random() * 0.12); | |
| totalEarnings += earnings; | |
| totalClicks++; | |
| // Mettre à jour l'UI | |
| document.getElementById('currentEarnings').textContent = totalEarnings.toFixed(2); | |
| document.getElementById('totalClicks').textContent = totalClicks.toLocaleString('fr-FR'); | |
| // Afficher la notification | |
| showEarningNotification(earnings); | |
| // Animer le robot | |
| monetizationBot.classList.add('pulse-animation'); | |
| setTimeout(() => { | |
| monetizationBot.classList.remove('pulse-animation'); | |
| }, 1000); | |
| } | |
| // Animer le robot | |
| function animateBot() { | |
| setInterval(() => { | |
| monetizationBot.classList.toggle('floating'); | |
| // Faire clignoter le robot aléatoirement | |
| if (Math.random() > 0.7) { | |
| monetizationBot.classList.add('pulse-animation'); | |
| setTimeout(() => { | |
| monetizationBot.classList.remove('pulse-animation'); | |
| }, 2000); | |
| } | |
| }, 6000); | |
| } | |
| // Afficher une notification de gains | |
| function showEarningNotification(amount) { | |
| earningsNotification.querySelector('span').textContent = `+$${amount.toFixed(2)} gagnés`; | |
| earningsNotification.classList.remove('hidden'); | |
| setTimeout(() => { | |
| earningsNotification.classList.add('hidden'); | |
| }, 3000); | |
| } | |
| // Générer les cartes de service | |
| function generateServiceCards(servicesToShow) { | |
| const container = document.getElementById('servicesContainer'); | |
| container.innerHTML = ''; | |
| servicesToShow.forEach(service => { | |
| const card = document.createElement('div'); | |
| card.className = `service-card glass-card rounded-xl overflow-hidden transition-all duration-300 ${service.category}`; | |
| card.innerHTML = ` | |
| <div class="relative"> | |
| <div class="absolute top-3 right-3 bg-gradient-to-r from-yellow-500 to-yellow-600 text-black text-xs px-2 py-1 rounded-full font-bold"> | |
| ${service.commission} | |
| </div> | |
| <div class="p-6 pb-4"> | |
| <div class="w-12 h-12 bg-gradient-to-br from-blue-600 to-purple-600 rounded-full flex items-center justify-center text-white text-xl mb-4"> | |
| <i class="fas fa-${service.icon}"></i> | |
| </div> | |
| <h3 class="text-xl font-bold mb-1">${service.name}</h3> | |
| <p class="text-sm opacity-80 mb-3">Catégorie: ${service.category}</p> | |
| <div class="flex items-center justify-between"> | |
| <div> | |
| <div class="text-xs opacity-70">Taux de conversion</div> | |
| <div class="w-full bg-gray-700 rounded-full h-1.5 mt-1"> | |
| <div class="bg-green-500 h-1.5 rounded-full" style="width: ${service.rate * 100}%"></div> | |
| </div> | |
| </div> | |
| <button class="monetized-btn px-4 py-2 bg-gradient-to-r from-blue-600 to-purple-600 rounded-lg text-sm font-medium hover:from-blue-500 hover:to-purple-500 transition-all"> | |
| Accéder <i class="fas fa-external-link-alt ml-1 text-xs"></i> | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| `; | |
| // Gérer le clic monétisé | |
| const btn = card.querySelector('.monetized-btn'); | |
| btn.addEventListener('click', (e) => { | |
| e.preventDefault(); | |
| // Simuler un délai de "traitement" | |
| btn.innerHTML = '<i class="fas fa-spinner fa-spin"></i>'; | |
| setTimeout(() => { | |
| // Calculer les gains (aléatoire basé sur le taux) | |
| const earnings = service.rate * (0.05 + Math.random() * 0.15); | |
| totalEarnings += earnings; | |
| totalClicks++; | |
| // Mettre à jour l'UI | |
| document.getElementById('currentEarnings').textContent = totalEarnings.toFixed(2); | |
| document.getElementById('totalClicks').textContent = totalClicks.toLocaleString('fr-FR'); | |
| // Afficher la notification | |
| showEarningNotification(earnings); | |
| // Animer le robot | |
| monetizationBot.classList.add('pulse-animation'); | |
| setTimeout(() => { | |
| monetizationBot.classList.remove('pulse-animation'); | |
| }, 1000); | |
| // Ouvrir le lien | |
| window.open(service.url, '_blank', 'noopener,noreferrer'); | |
| // Remettre le bouton normal | |
| btn.innerHTML = 'Accéder <i class="fas fa-external-link-alt ml-1 text-xs"></i>'; | |
| }, 800); | |
| }); | |
| container.appendChild(card); | |
| }); | |
| document.getElementById('visibleCount').textContent = servicesToShow.length; | |
| } | |
| // Filtrer par catégorie | |
| function filterByCategory(category) { | |
| currentCategory = category; | |
| if (category === 'all') { | |
| currentServices = allServices.slice(0, 12); | |
| } else { | |
| currentServices = allServices.filter(s => s.category === category).slice(0, 12); | |
| } | |
| generateServiceCards(currentServices); | |
| updateActiveCategoryButton(); | |
| } | |
| // Mettre à jour les boutons de catégorie actifs | |
| function updateActiveCategoryButton() { | |
| document.querySelectorAll('.category-btn').forEach(btn => { | |
| if (btn.dataset.category === currentCategory) { | |
| btn.classList.add('bg-blue-600', 'text-white'); | |
| btn.classList.remove('glass-card', 'hover:bg-white/10'); | |
| } else { | |
| btn.classList.remove('bg-blue-600', 'text-white'); | |
| btn.classList.add('glass-card', 'hover:bg-white/10'); | |
| } | |
| }); | |
| } | |
| // Recherche | |
| function searchServices(query) { | |
| const filtered = allServices.filter(service => | |
| service.name.toLowerCase().includes(query.toLowerCase()) || | |
| service.category.toLowerCase().includes(query.toLowerCase()) | |
| ).slice(0, 12); | |
| currentServices = filtered; | |
| generateServiceCards(currentServices); | |
| } | |
| // Initialisation | |
| document.addEventListener('DOMContentLoaded', function() { | |
| // Démarrer le chargement massif | |
| simulateMassiveLoading(); | |
| // Générer les premiers services | |
| generateServiceCards(currentServices); | |
| updateActiveCategoryButton(); | |
| // Écouteurs d'événements | |
| document.querySelectorAll('.category-btn').forEach(btn => { | |
| btn.addEventListener('click', () => filterByCategory(btn.dataset.category)); | |
| }); | |
| document.getElementById('searchInput').addEventListener('input', (e) => { | |
| searchServices(e.target.value); | |
| }); | |
| // Faire apparaître le robot après un délai | |
| setTimeout(() => { | |
| monetizationBot.style.opacity = '1'; | |
| }, 3000); | |
| }); | |
| </script> | |
| <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/mega-academy" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
| </html> |