| <!DOCTYPE html> |
| <html lang="fr"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>ARMÉE IA DE STREAMING - Système Ultra Avancé</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=Orbitron:wght@400;700&display=swap'); |
| |
| body { |
| font-family: 'Orbitron', sans-serif; |
| background-color: #0f0f1a; |
| color: #e0e0ff; |
| overflow-x: hidden; |
| } |
| |
| .cyber-border { |
| border: 1px solid #4f46e5; |
| box-shadow: 0 0 10px rgba(79, 70, 229, 0.5); |
| position: relative; |
| } |
| |
| .cyber-border::before { |
| content: ""; |
| position: absolute; |
| top: -2px; |
| left: -2px; |
| right: -2px; |
| bottom: -2px; |
| border: 2px solid #10b981; |
| z-index: -1; |
| opacity: 0.7; |
| } |
| |
| .glow-text { |
| text-shadow: 0 0 5px rgba(79, 70, 229, 0.7); |
| } |
| |
| .cyber-button { |
| background: linear-gradient(45deg, #4f46e5, #10b981); |
| border: none; |
| color: white; |
| padding: 10px 20px; |
| border-radius: 5px; |
| font-weight: bold; |
| text-transform: uppercase; |
| letter-spacing: 1px; |
| transition: all 0.3s; |
| position: relative; |
| overflow: hidden; |
| } |
| |
| .cyber-button:hover { |
| transform: translateY(-2px); |
| box-shadow: 0 5px 15px rgba(79, 70, 229, 0.4); |
| } |
| |
| .cyber-button::after { |
| content: ""; |
| position: absolute; |
| top: -50%; |
| left: -60%; |
| width: 200%; |
| height: 200%; |
| background: linear-gradient( |
| to right, |
| rgba(255, 255, 255, 0.13) 0%, |
| rgba(255, 255, 255, 0.13) 77%, |
| rgba(255, 255, 255, 0.5) 92%, |
| rgba(255, 255, 255, 0.0) 100% |
| ); |
| transform: rotate(30deg); |
| transition: all 0.7s ease-out; |
| } |
| |
| .cyber-button:hover::after { |
| left: 120%; |
| } |
| |
| .terminal-text { |
| font-family: 'Courier New', monospace; |
| color: #10b981; |
| text-shadow: 0 0 5px rgba(16, 185, 129, 0.7); |
| } |
| |
| .activation-screen { |
| position: fixed; |
| top: 0; |
| left: 0; |
| right: 0; |
| bottom: 0; |
| background-color: rgba(15, 15, 26, 0.95); |
| display: flex; |
| flex-direction: column; |
| justify-content: center; |
| align-items: center; |
| z-index: 1000; |
| } |
| |
| .progress-bar { |
| width: 80%; |
| height: 30px; |
| background-color: #1e1e2e; |
| border-radius: 15px; |
| margin-top: 30px; |
| overflow: hidden; |
| position: relative; |
| } |
| |
| .progress-fill { |
| height: 100%; |
| background: linear-gradient(90deg, #4f46e5, #10b981); |
| width: 0%; |
| transition: width 0.1s; |
| position: relative; |
| overflow: hidden; |
| } |
| |
| .progress-fill::after { |
| content: ""; |
| position: absolute; |
| top: 0; |
| left: 0; |
| right: 0; |
| bottom: 0; |
| background: linear-gradient( |
| 90deg, |
| transparent, |
| rgba(255, 255, 255, 0.2), |
| transparent |
| ); |
| animation: progress-shine 2s infinite; |
| } |
| |
| @keyframes progress-shine { |
| 0% { transform: translateX(-100%); } |
| 100% { transform: translateX(100%); } |
| } |
| |
| .code-fall { |
| position: absolute; |
| top: 0; |
| left: 0; |
| right: 0; |
| bottom: 0; |
| display: flex; |
| flex-wrap: wrap; |
| justify-content: space-around; |
| align-content: flex-start; |
| overflow: hidden; |
| pointer-events: none; |
| } |
| |
| .code-char { |
| color: #10b981; |
| font-size: 14px; |
| opacity: 0; |
| animation: code-fall linear infinite; |
| } |
| |
| @keyframes code-fall { |
| 0% { |
| transform: translateY(-100px); |
| opacity: 0; |
| } |
| 10% { |
| opacity: 0.7; |
| } |
| 90% { |
| opacity: 0.7; |
| } |
| 100% { |
| transform: translateY(100vh); |
| opacity: 0; |
| } |
| } |
| |
| @keyframes scan { |
| 0% { background-position: 0% 50%; } |
| 50% { background-position: 100% 50%; } |
| 100% { background-position: 0% 50%; } |
| } |
| |
| .scan-animation { |
| background: linear-gradient(90deg, #1e293b, #4f46e5, #10b981, #1e293b); |
| background-size: 400% 400%; |
| animation: scan 3s ease infinite; |
| } |
| |
| .matrix-fall { |
| position: absolute; |
| top: 0; |
| left: 0; |
| right: 0; |
| bottom: 0; |
| background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><rect width="1" height="1" x="10" y="10" fill="%234f46e5" opacity="0.2"/></svg>'); |
| opacity: 0.1; |
| pointer-events: none; |
| z-index: -1; |
| } |
| |
| .server-node { |
| background: rgba(30, 30, 46, 0.8); |
| border: 1px solid #4f46e5; |
| border-radius: 8px; |
| padding: 15px; |
| margin-bottom: 10px; |
| position: relative; |
| overflow: hidden; |
| } |
| |
| .server-node::before { |
| content: ""; |
| position: absolute; |
| top: 0; |
| left: 0; |
| width: 3px; |
| height: 100%; |
| background: linear-gradient(to bottom, #4f46e5, #10b981); |
| } |
| |
| .server-status { |
| width: 10px; |
| height: 10px; |
| border-radius: 50%; |
| display: inline-block; |
| margin-right: 5px; |
| } |
| |
| .server-active { |
| background-color: #10b981; |
| box-shadow: 0 0 5px #10b981; |
| } |
| |
| .server-standby { |
| background-color: #f59e0b; |
| box-shadow: 0 0 5px #f59e0b; |
| } |
| |
| .server-error { |
| background-color: #ef4444; |
| box-shadow: 0 0 5px #ef4444; |
| } |
| |
| .url-badge { |
| display: inline-block; |
| padding: 3px 8px; |
| border-radius: 4px; |
| font-size: 12px; |
| margin-right: 5px; |
| margin-bottom: 5px; |
| } |
| |
| .url-primary { |
| background-color: rgba(16, 185, 129, 0.2); |
| border: 1px solid #10b981; |
| } |
| |
| .url-backup { |
| background-color: rgba(59, 130, 246, 0.2); |
| border: 1px solid #3b82f6; |
| } |
| |
| .url-proxy { |
| background-color: rgba(139, 92, 246, 0.2); |
| border: 1px solid #8b5cf6; |
| } |
| |
| .url-torrent { |
| background-color: rgba(245, 158, 11, 0.2); |
| border: 1px solid #f59e0b; |
| } |
| |
| .ai-processing { |
| position: relative; |
| padding-left: 25px; |
| } |
| |
| .ai-processing::before { |
| content: ""; |
| position: absolute; |
| left: 0; |
| top: 50%; |
| transform: translateY(-50%); |
| width: 15px; |
| height: 15px; |
| border: 2px solid #4f46e5; |
| border-radius: 50%; |
| border-top-color: transparent; |
| animation: spin 1s linear infinite; |
| } |
| |
| @keyframes spin { |
| 0% { transform: translateY(-50%) rotate(0deg); } |
| 100% { transform: translateY(-50%) rotate(360deg); } |
| } |
| |
| .server-grid { |
| display: grid; |
| grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); |
| gap: 15px; |
| } |
| |
| .server-features { |
| display: flex; |
| flex-wrap: wrap; |
| gap: 5px; |
| margin-top: 10px; |
| } |
| |
| .feature-badge { |
| font-size: 10px; |
| padding: 2px 6px; |
| border-radius: 10px; |
| background-color: rgba(79, 70, 229, 0.2); |
| border: 1px solid #4f46e5; |
| } |
| </style> |
| </head> |
| <body class="relative"> |
| <div class="matrix-fall"></div> |
| |
| |
| <div id="activationScreen" class="activation-screen"> |
| <div class="code-fall" id="codeFall"></div> |
| |
| <div class="text-center px-8"> |
| <div class="w-32 h-32 bg-indigo-600 rounded-full flex items-center justify-center mx-auto mb-6 scan-animation"> |
| <i class="fas fa-bolt text-4xl animate-pulse"></i> |
| </div> |
| <h1 class="text-4xl font-bold glow-text mb-4">SYSTÈME DE DÉCOUVERTE IA</h1> |
| <p class="text-xl text-indigo-300 mb-2"> |
| <span id="movieCount">6,985,747</span> films indexés |
| </p> |
| <p class="text-sm text-gray-400 mb-6"> |
| Connexion API: <span class="terminal-text">fb437b10727a5a4eb8d9134e29c82ae0</span> |
| </p> |
| |
| <div class="progress-bar"> |
| <div id="progressFill" class="progress-fill"></div> |
| </div> |
| |
| <div class="mt-4 flex justify-between w-80 mx-auto"> |
| <span class="text-xs text-gray-400">Serveurs: <span id="serverCount" class="text-blue-400">12</span>/12</span> |
| <span class="text-xs text-gray-400">Cache: <span id="cacheCount" class="text-purple-400">6</span>/6</span> |
| <span class="text-xs text-gray-400">Lecteurs: <span id="playerCount" class="text-green-400">8</span>/8</span> |
| </div> |
| |
| <div id="statusText" class="terminal-text mt-6 text-sm max-h-40 overflow-y-auto text-left w-full max-w-2xl bg-black bg-opacity-50 p-4 rounded"> |
| > Initialisation du système de découverte IA...<br> |
| > Chargement des modules de recherche avancée... |
| </div> |
| </div> |
| </div> |
| |
| |
| <div id="mainInterface" class="hidden container mx-auto px-4 py-8"> |
| <div class="flex justify-between items-center mb-8"> |
| <h1 class="text-3xl font-bold glow-text"> |
| <i class="fas fa-robot mr-2"></i> ARMÉE IA DE STREAMING |
| </h1> |
| <div class="flex items-center"> |
| <span class="mr-4 text-green-400"> |
| <i class="fas fa-circle mr-1"></i> Connecté |
| </span> |
| <span class="text-indigo-300"> |
| <i class="fas fa-database mr-1"></i> 6,985,747 films |
| </span> |
| </div> |
| </div> |
| |
| <div class="grid grid-cols-1 lg:grid-cols-3 gap-6"> |
| |
| <div class="lg:col-span-1 cyber-border p-6 rounded-lg"> |
| <h2 class="text-xl font-bold mb-4 flex items-center"> |
| <i class="fas fa-search mr-2"></i> Recherche Intelligente |
| </h2> |
| <div class="mb-4"> |
| <input type="text" id="movieSearch" placeholder="Rechercher un film..." |
| class="w-full bg-gray-900 border border-indigo-700 rounded px-4 py-2 focus:outline-none focus:ring-2 focus:ring-indigo-500"> |
| </div> |
| <button id="searchButton" class="cyber-button w-full"> |
| <i class="fas fa-bolt mr-2"></i> Recherche IA |
| </button> |
| |
| <div class="mt-6"> |
| <h3 class="font-bold mb-2">Filtres Avancés</h3> |
| <div class="space-y-2"> |
| <label class="flex items-center"> |
| <input type="checkbox" class="form-checkbox text-indigo-600 bg-gray-800 border-gray-600 rounded mr-2"> |
| <span>4K Ultra HD</span> |
| </label> |
| <label class="flex items-center"> |
| <input type="checkbox" class="form-checkbox text-indigo-600 bg-gray-800 border-gray-600 rounded mr-2"> |
| <span>HDR</span> |
| </label> |
| <label class="flex items-center"> |
| <input type="checkbox" class="form-checkbox text-indigo-600 bg-gray-800 border-gray-600 rounded mr-2"> |
| <span>Dolby Atmos</span> |
| </label> |
| <label class="flex items-center"> |
| <input type="checkbox" class="form-checkbox text-indigo-600 bg-gray-800 border-gray-600 rounded mr-2"> |
| <span>Serveurs Proxifiés</span> |
| </label> |
| </div> |
| </div> |
| </div> |
| |
| |
| <div class="lg:col-span-2"> |
| <div class="cyber-border p-6 rounded-lg mb-6"> |
| <h2 class="text-xl font-bold mb-4 flex items-center"> |
| <i class="fas fa-film mr-2"></i> Résultats de Recherche |
| </h2> |
| <div id="searchResults" class="space-y-4"> |
| |
| </div> |
| </div> |
| |
| |
| <div class="cyber-border p-6 rounded-lg"> |
| <h2 class="text-xl font-bold mb-4 flex items-center"> |
| <i class="fas fa-server mr-2"></i> Réseau de Serveurs Réservés |
| </h2> |
| <p class="text-sm text-gray-400 mb-4"> |
| Système intelligent de découverte d'URL avec 12 serveurs dédiés et IA de streaming |
| </p> |
| |
| <div class="server-grid" id="serverNetwork"> |
| |
| </div> |
| |
| <div class="mt-6"> |
| <h3 class="font-bold mb-2">Statistiques du Réseau</h3> |
| <div class="grid grid-cols-2 md:grid-cols-4 gap-4 text-center"> |
| <div class="bg-gray-900 p-3 rounded"> |
| <div class="text-2xl font-bold text-green-400">12</div> |
| <div class="text-xs text-gray-400">Serveurs Actifs</div> |
| </div> |
| <div class="bg-gray-900 p-3 rounded"> |
| <div class="text-2xl font-bold text-blue-400">248</div> |
| <div class="text-xs text-gray-400">Sources Disponibles</div> |
| </div> |
| <div class="bg-gray-900 p-3 rounded"> |
| <div class="text-2xl font-bold text-purple-400">96%</div> |
| <div class="text-xs text-gray-400">Taux de Réussite</div> |
| </div> |
| <div class="bg-gray-900 p-3 rounded"> |
| <div class="text-2xl font-bold text-yellow-400">0.8s</div> |
| <div class="text-xs text-gray-400">Temps Moyen</div> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
|
|
| <script> |
| |
| const codeFall = document.getElementById('codeFall'); |
| const chars = '01'; |
| |
| for (let i = 0; i < 100; i++) { |
| const char = document.createElement('div'); |
| char.className = 'code-char'; |
| char.textContent = chars.charAt(Math.floor(Math.random() * chars.length)); |
| char.style.left = Math.random() * 100 + '%'; |
| char.style.animationDuration = (3 + Math.random() * 5) + 's'; |
| char.style.animationDelay = Math.random() * 5 + 's'; |
| codeFall.appendChild(char); |
| } |
| |
| |
| let progress = 0; |
| const progressFill = document.getElementById('progressFill'); |
| const statusText = document.getElementById('statusText'); |
| const activationScreen = document.getElementById('activationScreen'); |
| const mainInterface = document.getElementById('mainInterface'); |
| |
| const statusMessages = [ |
| "> Connexion aux serveurs réservés...", |
| "> Authentification API réussie", |
| "> Chargement de la base de données en mémoire", |
| "> Optimisation des index de recherche", |
| "> Synchronisation des serveurs miroirs", |
| "> Activation des modules IA", |
| "> Préparation des lecteurs multimédias", |
| "> Vérification des proxys", |
| "> Initialisation du système de découverte d'URL...", |
| "> Connexion aux serveurs cachés...", |
| "> Analyse des sources alternatives...", |
| "> Configuration des pare-feu intelligents...", |
| "> Mise en place des tunnels sécurisés...", |
| "> Test des serveurs de secours...", |
| "> Système prêt" |
| ]; |
| |
| |
| const serverData = [ |
| { |
| name: "Alpha-Node-01", |
| location: "Singapour", |
| status: "active", |
| urls: 24, |
| features: ["IA", "4K", "HDR", "Proxy"], |
| urlsFound: [ |
| {type: "primary", url: "https://cdn-alpha1.moviehub/4k/avengers"}, |
| {type: "backup", url: "https://mirror1.flixnode.net/movies/avengers"}, |
| {type: "proxy", url: "https://proxy-secure.streamgate/movie/avengers"}, |
| {type: "torrent", url: "magnet:?xt=urn:btih:AVENGERS4KHDR"} |
| ] |
| }, |
| { |
| name: "Beta-Node-02", |
| location: "Amsterdam", |
| status: "active", |
| urls: 18, |
| features: ["IA", "HDR", "Backup"], |
| urlsFound: [ |
| {type: "primary", url: "https://nl-stream.betacdn.net/movies/avengers"}, |
| {type: "backup", url: "https://backup.betacdn.eu/movies/avengers"}, |
| {type: "proxy", url: "https://proxy-nl1.cinemaflix/movie/avengers"} |
| ] |
| }, |
| { |
| name: "Gamma-Node-03", |
| location: "Miami", |
| status: "active", |
| urls: 22, |
| features: ["IA", "4K", "Dolby"], |
| urlsFound: [ |
| {type: "primary", url: "https://us1.streamgamma.com/4k/avengers"}, |
| {type: "backup", url: "https://us2.streamgamma.com/4k/avengers"}, |
| {type: "proxy", url: "https://proxy-us1.streamgamma/movie/avengers"} |
| ] |
| }, |
| { |
| name: "Delta-Node-04", |
| location: "Tokyo", |
| status: "active", |
| urls: 15, |
| features: ["IA", "Proxy", "Torrent"], |
| urlsFound: [ |
| {type: "primary", url: "https://japan-stream.deltanode/movies/avengers"}, |
| {type: "proxy", url: "https://proxy-jp1.deltanode/movie/avengers"}, |
| {type: "torrent", url: "magnet:?xt=urn:btih:AVENGERSTOKYO"} |
| ] |
| }, |
| { |
| name: "Epsilon-Node-05", |
| location: "Londres", |
| status: "standby", |
| urls: 12, |
| features: ["IA", "Backup"], |
| urlsFound: [ |
| {type: "backup", url: "https://uk1.epsiloncdn.net/movies/avengers"}, |
| {type: "backup", url: "https://uk2.epsiloncdn.net/movies/avengers"} |
| ] |
| }, |
| { |
| name: "Zeta-Node-06", |
| location: "Sydney", |
| status: "active", |
| urls: 19, |
| features: ["IA", "4K", "Proxy"], |
| urlsFound: [ |
| {type: "primary", url: "https://au1.zetanode.stream/movies/avengers"}, |
| {type: "proxy", url: "https://proxy-au1.zetanode/movie/avengers"} |
| ] |
| } |
| ]; |
| |
| |
| const movieData = [ |
| { |
| title: "Avengers: Endgame", |
| year: 2019, |
| quality: "4K HDR", |
| sources: 12, |
| servers: 6, |
| thumbnail: "https://image.tmdb.org/t/p/w500/or06FN3Dka5tukK1e9sl16pB3iy.jpg" |
| }, |
| { |
| title: "Inception", |
| year: 2010, |
| quality: "1080p", |
| sources: 8, |
| servers: 4, |
| thumbnail: "https://image.tmdb.org/t/p/w500/9gk7adHYeDvHkCSEqAvQNLV5Uge.jpg" |
| }, |
| { |
| title: "The Dark Knight", |
| year: 2008, |
| quality: "4K Dolby Vision", |
| sources: 10, |
| servers: 5, |
| thumbnail: "https://image.tmdb.org/t/p/w500/qJ2tW6WMUDux911r6m7haRef0WH.jpg" |
| }, |
| { |
| title: "Interstellar", |
| year: 2014, |
| quality: "4K IMAX", |
| sources: 9, |
| servers: 4, |
| thumbnail: "https://image.tmdb.org/t/p/w500/gEU2QniE6E77NI6lCU6MxlNBvIx.jpg" |
| } |
| ]; |
| |
| |
| const interval = setInterval(() => { |
| progress += 2; |
| progressFill.style.width = progress + '%'; |
| |
| |
| if (progress % 10 === 0) { |
| const msgIndex = Math.min(Math.floor(progress / 10), statusMessages.length - 1); |
| |
| |
| let newText = statusText.innerHTML; |
| if (newText.includes("<br>")) { |
| |
| const messages = newText.split("<br>").slice(-3); |
| newText = messages.join("<br>"); |
| } |
| |
| statusText.innerHTML = newText + "<br>" + statusMessages[msgIndex]; |
| statusText.scrollTop = statusText.scrollHeight; |
| } |
| |
| |
| document.getElementById('serverCount').textContent = Math.min(12, Math.floor(progress / 8.33)); |
| document.getElementById('cacheCount').textContent = Math.min(6, Math.floor(progress / 16.66)); |
| document.getElementById('playerCount').textContent = Math.min(8, Math.floor(progress / 12.5)); |
| |
| |
| const movieCount = Math.min(6985747, Math.floor(6985747 * progress / 100)); |
| document.getElementById('movieCount').textContent = movieCount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); |
| |
| if (progress >= 100) { |
| clearInterval(interval); |
| statusText.innerHTML += '<br>> Chargement terminé en 1.2s'; |
| statusText.innerHTML += '<br>> Système de découverte d\'URL activé'; |
| statusText.innerHTML += '<br>> 12 serveurs réservés connectés'; |
| |
| |
| setTimeout(() => { |
| activationScreen.classList.add('hidden'); |
| mainInterface.classList.remove('hidden'); |
| |
| |
| renderServerNetwork(); |
| |
| |
| renderMovieResults(); |
| |
| |
| document.getElementById('searchButton').addEventListener('click', () => { |
| const query = document.getElementById('movieSearch').value; |
| if (query) { |
| simulateSearch(query); |
| } |
| }); |
| }, 500); |
| } |
| }, 15); |
| |
| |
| function renderServerNetwork() { |
| const serverNetwork = document.getElementById('serverNetwork'); |
| serverNetwork.innerHTML = ''; |
| |
| serverData.forEach(server => { |
| const serverNode = document.createElement('div'); |
| serverNode.className = 'server-node'; |
| |
| let statusClass = 'server-active'; |
| if (server.status === 'standby') statusClass = 'server-standby'; |
| else if (server.status === 'error') statusClass = 'server-error'; |
| |
| serverNode.innerHTML = ` |
| <div class="flex justify-between items-start mb-2"> |
| <div> |
| <span class="${statusClass}"></span> |
| <span class="font-bold">${server.name}</span> |
| </div> |
| <span class="text-xs text-gray-400">${server.location}</span> |
| </div> |
| <div class="text-sm mb-3"> |
| <span class="text-green-400">${server.urls}</span> URLs trouvées |
| </div> |
| <div class="server-features"> |
| ${server.features.map(feat => `<span class="feature-badge">${feat}</span>`).join('')} |
| </div> |
| <div class="mt-3"> |
| <div class="text-xs text-gray-400 mb-1">URLs disponibles:</div> |
| <div> |
| ${server.urlsFound.map(url => { |
| let badgeClass = 'url-primary'; |
| if (url.type === 'backup') badgeClass = 'url-backup'; |
| else if (url.type === 'proxy') badgeClass = 'url-proxy'; |
| else if (url.type === 'torrent') badgeClass = 'url-torrent'; |
| |
| return `<span class="${badgeClass}">${url.url}</span>`; |
| }).join('')} |
| </div> |
| </div> |
| `; |
| |
| serverNetwork.appendChild(serverNode); |
| }); |
| } |
| |
| |
| function renderMovieResults() { |
| const searchResults = document.getElementById('searchResults'); |
| searchResults.innerHTML = ''; |
| |
| movieData.forEach(movie => { |
| const movieElement = document.createElement('div'); |
| movieElement.className = 'flex items-start bg-gray-900 bg-opacity-50 rounded-lg p-4 hover:bg-opacity-70 transition'; |
| |
| movieElement.innerHTML = ` |
| <img src="${movie.thumbnail}" alt="${movie.title}" class="w-24 h-32 object-cover rounded mr-4"> |
| <div class="flex-1"> |
| <div class="flex justify-between items-start"> |
| <div> |
| <h3 class="font-bold text-lg">${movie.title} <span class="text-gray-400">(${movie.year})</span></h3> |
| <div class="text-sm text-green-400 mb-2">${movie.quality}</div> |
| </div> |
| <div class="text-xs bg-indigo-900 bg-opacity-50 px-2 py-1 rounded"> |
| ${movie.sources} sources |
| </div> |
| </div> |
| <div class="text-xs text-gray-400 mb-3"> |
| ${movie.servers} serveurs réservés disponibles |
| </div> |
| <div class="flex space-x-2"> |
| <button class="cyber-button text-xs px-3 py-1"> |
| <i class="fas fa-play mr-1"></i> Lire Maintenant |
| </button> |
| <button class="bg-gray-800 hover:bg-gray-700 text-xs px-3 py-1 rounded transition"> |
| <i class="fas fa-info-circle mr-1"></i> Détails |
| </button> |
| <button class="bg-gray-800 hover:bg-gray-700 text-xs px-3 py-1 rounded transition"> |
| <i class="fas fa-bolt mr-1"></i> Trouver Plus de Sources |
| </button> |
| </div> |
| </div> |
| `; |
| |
| searchResults.appendChild(movieElement); |
| }); |
| } |
| |
| |
| function simulateSearch(query) { |
| const searchResults = document.getElementById('searchResults'); |
| searchResults.innerHTML = ` |
| <div class="ai-processing text-center py-8"> |
| <i class="fas fa-cog animate-spin text-2xl text-indigo-500 mr-2"></i> |
| <span>Analyse IA en cours pour "${query}"...</span> |
| </div> |
| `; |
| |
| |
| setTimeout(() => { |
| |
| const randomMovies = [...movieData] |
| .sort(() => 0.5 - Math.random()) |
| .slice(0, 3); |
| |
| searchResults.innerHTML = ''; |
| |
| randomMovies.forEach(movie => { |
| const movieElement = document.createElement('div'); |
| movieElement.className = 'flex items-start bg-gray-900 bg-opacity-50 rounded-lg p-4 hover:bg-opacity-70 transition'; |
| |
| movieElement.innerHTML = ` |
| <img src="${movie.thumbnail}" alt="${movie.title}" class="w-24 h-32 object-cover rounded mr-4"> |
| <div class="flex-1"> |
| <div class="flex justify-between items-start"> |
| <div> |
| <h3 class="font-bold text-lg">${movie.title} <span class="text-gray-400">(${movie.year})</span></h3> |
| <div class="text-sm text-green-400 mb-2">${movie.quality}</div> |
| </div> |
| <div class="text-xs bg-indigo-900 bg-opacity-50 px-2 py-1 rounded"> |
| ${Math.floor(Math.random() * 10) + 5} sources |
| </div> |
| </div> |
| <div class="text-xs text-gray-400 mb-3"> |
| ${Math.floor(Math.random() * 6) + 1} serveurs réservés disponibles |
| </div> |
| <div class="flex space-x-2"> |
| <button class="cyber-button text-xs px-3 py-1"> |
| <i class="fas fa-play mr-1"></i> Lire Maintenant |
| </button> |
| <button class="bg-gray-800 hover:bg-gray-700 text-xs px-3 py-1 rounded transition"> |
| <i class="fas fa-info-circle mr-1"></i> Détails |
| </button> |
| <button class="bg-gray-800 hover:bg-gray-700 text-xs px-3 py-1 rounded transition"> |
| <i class="fas fa-bolt mr-1"></i> Trouver Plus de Sources |
| </button> |
| </div> |
| </div> |
| `; |
| |
| searchResults.appendChild(movieElement); |
| }); |
| |
| |
| const infoDiv = document.createElement('div'); |
| infoDiv.className = 'text-center text-sm text-gray-400 mt-4'; |
| infoDiv.innerHTML = ` |
| <i class="fas fa-robot text-indigo-400 mr-1"></i> |
| L'IA a trouvé ${randomMovies.length} résultats pertinents en 0.8 secondes |
| `; |
| searchResults.appendChild(infoDiv); |
| |
| }, 1500); |
| } |
| |
| |
| window.addEventListener('load', () => { |
| |
| }); |
| </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/armee-ia" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> |
| </html> |