stream-4u / index.html
docto41's picture
Add 2 files
00939bf verified
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>StreamMaster - Gestion de Liens Automatisée</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>
.stream-gradient {
background: linear-gradient(135deg, #1e40af 0%, #7e22ce 50%, #c026d3 100%);
}
.link-card:hover {
transform: translateY(-2px);
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.2);
}
.status-badge {
font-size: 0.65rem;
}
.scrollbar-hide::-webkit-scrollbar {
display: none;
}
</style>
</head>
<body class="bg-gray-900 text-gray-100">
<!-- Header -->
<header class="sticky top-0 z-50 bg-gray-900/90 backdrop-blur-sm border-b border-gray-800">
<div class="container mx-auto px-4 py-3 flex items-center justify-between">
<div class="flex items-center space-x-8">
<a href="#" class="flex items-center">
<span class="text-2xl font-bold bg-gradient-to-r from-blue-600 via-purple-600 to-pink-600 bg-clip-text text-transparent">StreamMaster</span>
</a>
<nav class="hidden md:flex space-x-6">
<a href="#dashboard" class="hover:text-purple-400 transition">Dashboard</a>
<a href="#sites" class="hover:text-purple-400 transition">Sites de Streaming</a>
<a href="#automation" class="hover:text-purple-400 transition">Automatisation</a>
<a href="#stats" class="hover:text-purple-400 transition">Statistiques</a>
</nav>
</div>
<div class="flex items-center space-x-4">
<div class="relative">
<button id="search-btn" class="p-2 rounded-full hover:bg-gray-800">
<i class="fas fa-search"></i>
</button>
</div>
<div class="relative">
<button class="flex items-center space-x-2 hover:bg-gray-800 px-3 py-2 rounded-lg">
<img src="https://randomuser.me/api/portraits/men/32.jpg" alt="Profile" class="w-8 h-8 rounded-full">
<span class="hidden md:inline">Admin</span>
</button>
</div>
</div>
</div>
</header>
<!-- Dashboard Section -->
<section id="dashboard" class="stream-gradient py-16">
<div class="container mx-auto px-4">
<h1 class="text-4xl md:text-5xl font-bold mb-6">Gestion Automatisée de Sites de Streaming</h1>
<div class="grid md:grid-cols-3 gap-6">
<div class="bg-gray-800/50 rounded-xl p-6 border border-gray-700">
<div class="flex items-center justify-between mb-4">
<h3 class="text-xl font-bold">Sites Actifs</h3>
<div class="bg-blue-500 text-white rounded-full p-2">
<i class="fas fa-globe"></i>
</div>
</div>
<div class="text-3xl font-bold mb-2" id="active-sites">28</div>
<div class="text-sm text-gray-300">Dernière mise à jour: <span id="last-update">aujourd'hui 03:42</span></div>
</div>
<div class="bg-gray-800/50 rounded-xl p-6 border border-gray-700">
<div class="flex items-center justify-between mb-4">
<h3 class="text-xl font-bold">Liens Vérifiés</h3>
<div class="bg-purple-500 text-white rounded-full p-2">
<i class="fas fa-link"></i>
</div>
</div>
<div class="text-3xl font-bold mb-2" id="verified-links">124,556</div>
<div class="text-sm text-gray-300">Dont <span class="text-green-400">92%</span> fonctionnels</div>
</div>
<div class="bg-gray-800/50 rounded-xl p-6 border border-gray-700">
<div class="flex items-center justify-between mb-4">
<h3 class="text-xl font-bold">Nouveaux Liens</h3>
<div class="bg-pink-500 text-white rounded-full p-2">
<i class="fas fa-bolt"></i>
</div>
</div>
<div class="text-3xl font-bold mb-2" id="new-links">328</div>
<div class="text-sm text-gray-300">Ajoutés ces dernières 24h</div>
</div>
</div>
</div>
</section>
<!-- Sites Section -->
<section id="sites" class="container mx-auto px-4 py-10">
<div class="flex justify-between items-center mb-6">
<h2 class="text-2xl font-bold">Sites de Streaming Automatiquement Mis à Jour</h2>
<div class="flex items-center space-x-4">
<button id="add-site-btn" class="bg-purple-600 hover:bg-purple-700 px-4 py-2 rounded-lg font-medium flex items-center">
<i class="fas fa-plus mr-2"></i> Ajouter Site
</button>
<button id="scan-sites-btn" class="bg-blue-600 hover:bg-blue-700 px-4 py-2 rounded-lg font-medium flex items-center">
<i class="fas fa-sync-alt mr-2"></i> Scanner Maintenant
</button>
</div>
</div>
<!-- Filters -->
<div class="bg-gray-800 rounded-lg p-4 mb-6">
<div class="grid grid-cols-1 md:grid-cols-4 gap-4">
<div>
<label class="block text-sm font-medium mb-1">Statut</label>
<select id="status-filter" class="w-full bg-gray-700 border border-gray-600 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-purple-500">
<option value="all">Tous statuts</option>
<option value="active">Actif</option>
<option value="unstable">Instable</option>
<option value="inactive">Inactif</option>
</select>
</div>
<div>
<label class="block text-sm font-medium mb-1">Pays</label>
<select id="country-filter" class="w-full bg-gray-700 border border-gray-600 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-purple-500">
<option value="all">Tous pays</option>
<option value="france">France</option>
<option value="usa">USA</option>
<option value="canada">Canada</option>
<option value="uk">Royaume-Uni</option>
</select>
</div>
<div>
<label class="block text-sm font-medium mb-1">Langue</label>
<select id="language-filter" class="w-full bg-gray-700 border border-gray-600 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-purple-500">
<option value="all">Toutes langues</option>
<option value="fr">Français</option>
<option value="multi">Multi-langues</option>
</select>
</div>
<div>
<label class="block text-sm font-medium mb-1">Type</label>
<select id="type-filter" class="w-full bg-gray-700 border border-gray-600 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-purple-500">
<option value="all">Tous types</option>
<option value="movie">Films</option>
<option value="series">Séries</option>
<option value="both">Les deux</option>
</select>
</div>
</div>
</div>
<!-- Sites Grid -->
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<!-- Site Card 1 -->
<div class="link-card bg-gray-800 rounded-lg overflow-hidden border border-gray-700 transition duration-300">
<div class="p-5">
<div class="flex items-start justify-between mb-3">
<div>
<h3 class="text-lg font-bold flex items-center">
<img src="https://via.placeholder.com/40" alt="StreamHub" class="w-6 h-6 rounded mr-2">
StreamHub
</h3>
<span class="text-sm text-gray-400">streamhub.to</span>
</div>
<span class="status-badge px-2 py-1 rounded-full bg-green-500 text-green-900 font-semibold">Actif</span>
</div>
<div class="flex items-center text-sm text-gray-300 mb-4">
<span class="mr-3"><i class="fas fa-film mr-1"></i> 24,556 films</span>
<span><i class="fas fa-tv mr-1"></i> 8,432 séries</span>
</div>
<div class="mb-4">
<div class="flex justify-between text-xs mb-1">
<span>Liens fonctionnels</span>
<span>94%</span>
</div>
<div class="w-full bg-gray-700 rounded-full h-1.5">
<div class="bg-green-500 h-1.5 rounded-full" style="width: 94%"></div>
</div>
</div>
<div class="flex flex-wrap gap-2 mb-4">
<span class="px-2 py-1 bg-gray-700 rounded text-xs">VF</span>
<span class="px-2 py-1 bg-gray-700 rounded text-xs">VOSTFR</span>
<span class="px-2 py-1 bg-gray-700 rounded text-xs">HD</span>
<span class="px-2 py-1 bg-gray-700 rounded text-xs">4K</span>
</div>
<div class="flex justify-between items-center text-sm">
<span class="text-gray-400"><i class="fas fa-clock mr-1"></i> Mis à jour il y a 2h</span>
<div class="flex space-x-2">
<button class="text-blue-400 hover:text-blue-600">
<i class="fas fa-external-link-alt"></i>
</button>
<button class="text-purple-400 hover:text-purple-600">
<i class="fas fa-cog"></i>
</button>
</div>
</div>
</div>
</div>
<!-- Site Card 2 -->
<div class="link-card bg-gray-800 rounded-lg overflow-hidden border border-gray-700 transition duration-300">
<div class="p-5">
<div class="flex items-start justify-between mb-3">
<div>
<h3 class="text-lg font-bold flex items-center">
<img src="https://via.placeholder.com/40" alt="MovieCloud" class="w-6 h-6 rounded mr-2">
MovieCloud
</h3>
<span class="text-sm text-gray-400">moviecloud.cc</span>
</div>
<span class="status-badge px-2 py-1 rounded-full bg-green-500 text-green-900 font-semibold">Actif</span>
</div>
<div class="flex items-center text-sm text-gray-300 mb-4">
<span class="mr-3"><i class="fas fa-film mr-1"></i> 18,432 films</span>
<span><i class="fas fa-tv mr-1"></i> 6,754 séries</span>
</div>
<div class="mb-4">
<div class="flex justify-between text-xs mb-1">
<span>Liens fonctionnels</span>
<span>89%</span>
</div>
<div class="w-full bg-gray-700 rounded-full h-1.5">
<div class="bg-green-500 h-1.5 rounded-full" style="width: 89%"></div>
</div>
</div>
<div class="flex flex-wrap gap-2 mb-4">
<span class="px-2 py-1 bg-gray-700 rounded text-xs">VF</span>
<span class="px-2 py-1 bg-gray-700 rounded text-xs">VOSTFR</span>
<span class="px-2 py-1 bg-gray-700 rounded text-xs">HD</span>
<span class="px-2 py-1 bg-gray-700 rounded text-xs">Full HD</span>
</div>
<div class="flex justify-between items-center text-sm">
<span class="text-gray-400"><i class="fas fa-clock mr-1"></i> Mis à jour il y a 5h</span>
<div class="flex space-x-2">
<button class="text-blue-400 hover:text-blue-600">
<i class="fas fa-external-link-alt"></i>
</button>
<button class="text-purple-400 hover:text-purple-600">
<i class="fas fa-cog"></i>
</button>
</div>
</div>
</div>
</div>
<!-- Site Card 3 -->
<div class="link-card bg-gray-800 rounded-lg overflow-hidden border border-gray-700 transition duration-300">
<div class="p-5">
<div class="flex items-start justify-between mb-3">
<div>
<h3 class="text-lg font-bold flex items-center">
<img src="https://via.placeholder.com/40" alt="FilmBox" class="w-6 h-6 rounded mr-2">
FilmBox
</h3>
<span class="text-sm text-gray-400">filmbox.pro</span>
</div>
<span class="status-badge px-2 py-1 rounded-full bg-yellow-500 text-yellow-900 font-semibold">Instable</span>
</div>
<div class="flex items-center text-sm text-gray-300 mb-4">
<span class="mr-3"><i class="fas fa-film mr-1"></i> 15,678 films</span>
<span><i class="fas fa-tv mr-1"></i> 5,321 séries</span>
</div>
<div class="mb-4">
<div class="flex justify-between text-xs mb-1">
<span>Liens fonctionnels</span>
<span>76%</span>
</div>
<div class="w-full bg-gray-700 rounded-full h-1.5">
<div class="bg-yellow-500 h-1.5 rounded-full" style="width: 76%"></div>
</div>
</div>
<div class="flex flex-wrap gap-2 mb-4">
<span class="px-2 py-1 bg-gray-700 rounded text-xs">VOSTFR</span>
<span class="px-2 py-1 bg-gray-700 rounded text-xs">HD</span>
<span class="px-2 py-1 bg-gray-700 rounded text-xs">Full HD</span>
</div>
<div class="flex justify-between items-center text-sm">
<span class="text-gray-400"><i class="fas fa-clock mr-1"></i> Mis à jour il y a 1j</span>
<div class="flex space-x-2">
<button class="text-blue-400 hover:text-blue-600">
<i class="fas fa-external-link-alt"></i>
</button>
<button class="text-purple-400 hover:text-purple-600">
<i class="fas fa-cog"></i>
</button>
</div>
</div>
</div>
</div>
<!-- Site Card 4 -->
<div class="link-card bg-gray-800 rounded-lg overflow-hidden border border-gray-700 transition duration-300">
<div class="p-5">
<div class="flex items-start justify-between mb-3">
<div>
<h3 class="text-lg font-bold flex items-center">
<img src="https://via.placeholder.com/40" alt="CinéStream" class="w-6 h-6 rounded mr-2">
CinéStream
</h3>
<span class="text-sm text-gray-400">cinestream.xyz</span>
</div>
<span class="status-badge px-2 py-1 rounded-full bg-green-500 text-green-900 font-semibold">Actif</span>
</div>
<div class="flex items-center text-sm text-gray-300 mb-4">
<span class="mr-3"><i class="fas fa-film mr-1"></i> 12,345 films</span>
<span><i class="fas fa-tv mr-1"></i> 4,567 séries</span>
</div>
<div class="mb-4">
<div class="flex justify-between text-xs mb-1">
<span>Liens fonctionnels</span>
<span>91%</span>
</div>
<div class="w-full bg-gray-700 rounded-full h-1.5">
<div class="bg-green-500 h-1.5 rounded-full" style="width: 91%"></div>
</div>
</div>
<div class="flex flex-wrap gap-2 mb-4">
<span class="px-2 py-1 bg-gray-700 rounded text-xs">VF</span>
<span class="px-2 py-1 bg-gray-700 rounded text-xs">VOSTFR</span>
<span class="px-2 py-1 bg-gray-700 rounded text-xs">HD</span>
<span class="px-2 py-1 bg-gray-700 rounded text-xs">4K</span>
</div>
<div class="flex justify-between items-center text-sm">
<span class="text-gray-400"><i class="fas fa-clock mr-1"></i> Mis à jour aujourd'hui</span>
<div class="flex space-x-2">
<button class="text-blue-400 hover:text-blue-600">
<i class="fas fa-external-link-alt"></i>
</button>
<button class="text-purple-400 hover:text-purple-600">
<i class="fas fa-cog"></i>
</button>
</div>
</div>
</div>
</div>
<!-- Site Card 5 -->
<div class="link-card bg-gray-800 rounded-lg overflow-hidden border border-gray-700 transition duration-300">
<div class="p-5">
<div class="flex items-start justify-between mb-3">
<div>
<h3 class="text-lg font-bold flex items-center">
<img src="https://via.placeholder.com/40" alt="StreamZone" class="w-6 h-6 rounded mr-2">
StreamZone
</h3>
<span class="text-sm text-gray-400">streamzone.io</span>
</div>
<span class="status-badge px-2 py-1 rounded-full bg-green-500 text-green-900 font-semibold">Actif</span>
</div>
<div class="flex items-center text-sm text-gray-300 mb-4">
<span class="mr-3"><i class="fas fa-film mr-1"></i> 9,876 films</span>
<span><i class="fas fa-tv mr-1"></i> 3,456 séries</span>
</div>
<div class="mb-4">
<div class="flex justify-between text-xs mb-1">
<span>Liens fonctionnels</span>
<span>87%</span>
</div>
<div class="w-full bg-gray-700 rounded-full h-1.5">
<div class="bg-green-500 h-1.5 rounded-full" style="width: 87%"></div>
</div>
</div>
<div class="flex flex-wrap gap-2 mb-4">
<span class="px-2 py-1 bg-gray-700 rounded text-xs">VF</span>
<span class="px-2 py-1 bg-gray-700 rounded text-xs">HD</span>
<span class="px-2 py-1 bg-gray-700 rounded text-xs">Full HD</span>
</div>
<div class="flex justify-between items-center text-sm">
<span class="text-gray-400"><i class="fas fa-clock mr-1"></i> Mis à jour il y a 3h</span>
<div class="flex space-x-2">
<button class="text-blue-400 hover:text-blue-600">
<i class="fas fa-external-link-alt"></i>
</button>
<button class="text-purple-400 hover:text-purple-600">
<i class="fas fa-cog"></i>
</button>
</div>
</div>
</div>
</div>
<!-- Site Card 6 -->
<div class="link-card bg-gray-800 rounded-lg overflow-hidden border border-gray-700 transition duration-300">
<div class="p-5">
<div class="flex items-start justify-between mb-3">
<div>
<h3 class="text-lg font-bold flex items-center">
<img src="https://via.placeholder.com/40" alt="FlixHQ" class="w-6 h-6 rounded mr-2">
FlixHQ
</h3>
<span class="text-sm text-gray-400">flixhq.net</span>
</div>
<span class="status-badge px-2 py-1 rounded-full bg-red-500 text-red-900 font-semibold">Inactif</span>
</div>
<div class="flex items-center text-sm text-gray-300 mb-4">
<span class="mr-3"><i class="fas fa-film mr-1"></i> 8,765 films</span>
<span><i class="fas fa-tv mr-1"></i> 2,987 séries</span>
</div>
<div class="mb-4">
<div class="flex justify-between text-xs mb-1">
<span>Liens fonctionnels</span>
<span>12%</span>
</div>
<div class="w-full bg-gray-700 rounded-full h-1.5">
<div class="bg-red-500 h-1.5 rounded-full" style="width: 12%"></div>
</div>
</div>
<div class="flex flex-wrap gap-2 mb-4">
<span class="px-2 py-1 bg-gray-700 rounded text-xs">VOSTFR</span>
<span class="px-2 py-1 bg-gray-700 rounded text-xs">HD</span>
</div>
<div class="flex justify-between items-center text-sm">
<span class="text-gray-400"><i class="fas fa-clock mr-1"></i> Mis à jour il y a 7j</span>
<div class="flex space-x-2">
<button class="text-blue-400 hover:text-blue-600">
<i class="fas fa-external-link-alt"></i>
</button>
<button class="text-purple-400 hover:text-purple-600">
<i class="fas fa-cog"></i>
</button>
</div>
</div>
</div>
</div>
</div>
<!-- Pagination -->
<div class="mt-8 flex justify-center">
<nav class="relative z-0 inline-flex rounded-md shadow-sm -space-x-px" aria-label="Pagination">
<a href="#" class="relative inline-flex items-center px-2 py-2 rounded-l-md border border-gray-600 bg-gray-800 text-sm font-medium text-gray-400 hover:bg-gray-700">
<span class="sr-only">Précédent</span>
<i class="fas fa-chevron-left"></i>
</a>
<a href="#" aria-current="page" class="z-10 bg-purple-600 border-purple-500 text-white relative inline-flex items-center px-4 py-2 border text-sm font-medium"> 1 </a>
<a href="#" class="bg-gray-800 border-gray-600 text-gray-300 hover:bg-gray-700 relative inline-flex items-center px-4 py-2 border text-sm font-medium"> 2 </a>
<a href="#" class="bg-gray-800 border-gray-600 text-gray-300 hover:bg-gray-700 relative inline-flex items-center px-4 py-2 border text-sm font-medium"> 3 </a>
<span class="relative inline-flex items-center px-4 py-2 border border-gray-600 bg-gray-800 text-sm font-medium text-gray-700"> ... </span>
<a href="#" class="bg-gray-800 border-gray-600 text-gray-300 hover:bg-gray-700 relative inline-flex items-center px-4 py-2 border text-sm font-medium"> 8 </a>
<a href="#" class="relative inline-flex items-center px-2 py-2 rounded-r-md border border-gray-600 bg-gray-800 text-sm font-medium text-gray-400 hover:bg-gray-700">
<span class="sr-only">Suivant</span>
<i class="fas fa-chevron-right"></i>
</a>
</nav>
</div>
</section>
<!-- Automation Section -->
<section id="automation" class="container mx-auto px-4 py-10 bg-gray-900">
<h2 class="text-2xl font-bold mb-6">Configuration de l'Automatisation</h2>
<div class="grid md:grid-cols-2 gap-6">
<div class="bg-gray-800 rounded-lg p-6 border border-gray-700">
<div class="flex items-center justify-between mb-4">
<h3 class="text-xl font-bold">Mise à Jour Automatique</h3>
<label class="relative inline-flex items-center cursor-pointer">
<input type="checkbox" id="auto-update-toggle" class="sr-only peer" checked>
<div class="w-11 h-6 bg-gray-700 peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-purple-600"></div>
</label>
</div>
<p class="text-gray-300 mb-4">Activez cette option pour permettre au système de scanner automatiquement les sites et de mettre à jour les liens de streaming.</p>
<div class="grid grid-cols-2 gap-4">
<div>
<label class="block text-sm font-medium mb-1">Fréquence</label>
<select id="update-frequency" class="w-full bg-gray-700 border border-gray-600 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-purple-500">
<option value="hourly">Toutes les heures</option>
<option value="daily" selected>Quotidiennement</option>
<option value="weekly">Hebdomadairement</option>
</select>
</div>
<div>
<label class="block text-sm font-medium mb-1">Heure</label>
<input type="time" id="update-time" class="w-full bg-gray-700 border border-gray-600 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-purple-500" value="03:00">
</div>
</div>
<div class="mt-4">
<label class="block text-sm font-medium mb-1">Sites prioritaires</label>
<select id="priority-sites" class="w-full bg-gray-700 border border-gray-600 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-purple-500" multiple>
<option value="streamhub" selected>StreamHub</option>
<option value="moviecloud" selected>MovieCloud</option>
<option value="cinestream">CinéStream</option>
<option value="streamzone">StreamZone</option>
<option value="filmbox">FilmBox</option>
</select>
<p class="text-xs text-gray-400 mt-1">Maintenez Ctrl (Windows) ou Cmd (Mac) pour sélectionner plusieurs sites</p>
</div>
</div>
<div class="bg-gray-800 rounded-lg p-6 border border-gray-700">
<div class="flex items-center justify-between mb-4">
<h3 class="text-xl font-bold">Vérification des Liens</h3>
<label class="relative inline-flex items-center cursor-pointer">
<input type="checkbox" id="link-check-toggle" class="sr-only peer" checked>
<div class="w-11 h-6 bg-gray-700 peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-purple-600"></div>
</label>
</div>
<p class="text-gray-300 mb-4">Activez cette option pour vérifier automatiquement que tous les liens de streaming sont fonctionnels.</p>
<div class="grid grid-cols-2 gap-4">
<div>
<label class="block text-sm font-medium mb-1">Fréquence</label>
<select id="check-frequency" class="w-full bg-gray-700 border border-gray-600 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-purple-500">
<option value="daily" selected>Quotidiennement</option>
<option value="weekly">Hebdomadairement</option>
<option value="monthly">Mensuellement</option>
</select>
</div>
<div>
<label class="block text-sm font-medium mb-1">Heure</label>
<input type="time" id="check-time" class="w-full bg-gray-700 border border-gray-600 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-purple-500" value="04:00">
</div>
</div>
<div class="mt-4">
<label class="block text-sm font-medium mb-1">Seuil d'alerte</label>
<div class="flex items-center space-x-4">
<input type="range" id="alert-threshold" min="0" max="100" value="70" class="w-full h-2 bg-gray-700 rounded-lg appearance-none cursor-pointer">
<span id="threshold-value" class="text-sm font-medium">70%</span>
</div>
<p class="text-xs text-gray-400 mt-1">Envoie une alerte si moins de X% des liens d'un site sont fonctionnels</p>
</div>
</div>
</div>
<div class="mt-6 bg-gray-800 rounded-lg p-6 border border-gray-700">
<h3 class="text-xl font-bold mb-4">Notifications</h3>
<div class="grid md:grid-cols-3 gap-4">
<div>
<label class="flex items-center space-x-3">
<input type="checkbox" id="email-notifications" class="form-checkbox h-5 w-5 text-purple-600" checked>
<span class="text-gray-300">Email</span>
</label>
</div>
<div>
<label class="flex items-center space-x-3">
<input type="checkbox" id="push-notifications" class="form-checkbox h-5 w-5 text-purple-600">
<span class="text-gray-300">Notifications push</span>
</label>
</div>
<div>
<label class="flex items-center space-x-3">
<input type="checkbox" id="webhook-notifications" class="form-checkbox h-5 w-5 text-purple-600">
<span class="text-gray-300">Webhook</span>
</label>
</div>
</div>
<div class="mt-4" id="email-settings">
<label class="block text-sm font-medium mb-1">Email de notification</label>
<input type="email" id="notification-email" class="w-full bg-gray-700 border border-gray-600 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-purple-500" value="admin@example.com">
</div>
<div class="mt-4 hidden" id="webhook-settings">
<label class="block text-sm font-medium mb-1">URL Webhook</label>
<input type="url" id="webhook-url" class="w-full bg-gray-700 border border-gray-600 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-purple-500" placeholder="https://example.com/webhook">
</div>
<div class="mt-6">
<button id="save-settings-btn" class="bg-purple-600 hover:bg-purple-700 px-4 py-2 rounded-lg font-medium flex items-center">
<i class="fas fa-save mr-2"></i> Enregistrer les paramètres
</button>
</div>
</div>
</section>
<!-- Statistics Section -->
<section id="stats" class="container mx-auto px-4 py-10">
<h2 class="text-2xl font-bold mb-6">Statistiques des Sites</h2>
<div class="grid md:grid-cols-3 gap-6 mb-8">
<div class="bg-gray-800 rounded-lg p-6 border border-gray-700">
<h3 class="text-lg font-bold mb-4">Statut des Sites</h3>
<div class="space-y-2">
<div>
<div class="flex justify-between text-sm mb-1">
<span>Actifs</span>
<span>24 (85.7%)</span>
</div>
<div class="w-full bg-gray-700 rounded-full h-2">
<div class="bg-green-500 h-2 rounded-full" style="width: 85.7%"></div>
</div>
</div>
<div>
<div class="flex justify-between text-sm mb-1">
<span>Instables</span>
<span>3 (10.7%)</span>
</div>
<div class="w-full bg-gray-700 rounded-full h-2">
<div class="bg-yellow-500 h-2 rounded-full" style="width: 10.7%"></div>
</div>
</div>
<div>
<div class="flex justify-between text-sm mb-1">
<span>Inactifs</span>
<span>1 (3.6%)</span>
</div>
<div class="w-full bg-gray-700 rounded-full h-2">
<div class="bg-red-500 h-2 rounded-full" style="width: 3.6%"></div>
</div>
</div>
</div>
</div>
<div class="bg-gray-800 rounded-lg p-6 border border-gray-700">
<h3 class="text-lg font-bold mb-4">Liens par Site</h3>
<div class="space-y-2">
<div>
<div class="flex justify-between text-sm mb-1">
<span>StreamHub</span>
<span>24,556 (19.7%)</span>
</div>
<div class="w-full bg-gray-700 rounded-full h-2">
<div class="bg-blue-500 h-2 rounded-full" style="width: 19.7%"></div>
</div>
</div>
<div>
<div class="flex justify-between text-sm mb-1">
<span>MovieCloud</span>
<span>18,432 (14.8%)</span>
</div>
<div class="w-full bg-gray-700 rounded-full h-2">
<div class="bg-purple-500 h-2 rounded-full" style="width: 14.8%"></div>
</div>
</div>
<div>
<div class="flex justify-between text-sm mb-1">
<span>Autres</span>
<span>81,568 (65.5%)</span>
</div>
<div class="w-full bg-gray-700 rounded-full h-2">
<div class="bg-pink-500 h-2 rounded-full" style="width: 65.5%"></div>
</div>
</div>
</div>
</div>
<div class="bg-gray-800 rounded-lg p-6 border border-gray-700">
<h3 class="text-lg font-bold mb-4">Activité Récente</h3>
<div class="space-y-4">
<div class="flex items-start">
<div class="bg-purple-500 text-white rounded-full p-1 mr-3 mt-1">
<i class="fas fa-sync-alt text-xs"></i>
</div>
<div>
<div class="text-sm font-medium">Mise à jour automatique</div>
<div class="text-xs text-gray-400">Aujourd'hui 03:42 - 328 nouveaux liens ajoutés</div>
</div>
</div>
<div class="flex items-start">
<div class="bg-green-500 text-white rounded-full p-1 mr-3 mt-1">
<i class="fas fa-check text-xs"></i>
</div>
<div>
<div class="text-sm font-medium">Vérification des liens</div>
<div class="text-xs text-gray-400">Aujourd'hui 04:30 - 124,556 liens vérifiés</div>
</div>
</div>
<div class="flex items-start">
<div class="bg-yellow-500 text-white rounded-full p-1 mr-3 mt-1">
<i class="fas fa-exclamation text-xs"></i>
</div>
<div>
<div class="text-sm font-medium">Alerte: FilmBox instable</div>
<div class="text-xs text-gray-400">76% des liens fonctionnels (en dessous du seuil)</div>
</div>
</div>
</div>
</div>
</div>
<div class="bg-gray-800 rounded-lg p-6 border border-gray-700">
<h3 class="text-xl font-bold mb-4">Historique des Mises à Jour</h3>
<div class="overflow-x-auto">
<table class="min-w-full divide-y divide-gray-700">
<thead class="bg-gray-700">
<tr>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Date/Heure</th>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Type</th>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Sites</th>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Nouveaux Liens</th>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Statut</th>
</tr>
</thead>
<tbody class="bg-gray-800 divide-y divide-gray-700">
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm">2023-11-15 03:42</td>
<td class="px-6 py-4 whitespace-nowrap text-sm">Automatique</td>
<td class="px-6 py-4 whitespace-nowrap text-sm">Tous (28)</td>
<td class="px-6 py-4 whitespace-nowrap text-sm">328</td>
<td class="px-6 py-4 whitespace-nowrap">
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-500 text-green-900">Terminé</span>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm">2023-11-14 03:40</td>
<td class="px-6 py-4 whitespace-nowrap text-sm">Automatique</td>
<td class="px-6 py-4 whitespace-nowrap text-sm">Tous (28)</td>
<td class="px-6 py-4 whitespace-nowrap text-sm">287</td>
<td class="px-6 py-4 whitespace-nowrap">
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-500 text-green-900">Terminé</span>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm">2023-11-13 03:38</td>
<td class="px-6 py-4 whitespace-nowrap text-sm">Automatique</td>
<td class="px-6 py-4 whitespace-nowrap text-sm">Tous (28)</td>
<td class="px-6 py-4 whitespace-nowrap text-sm">312</td>
<td class="px-6 py-4 whitespace-nowrap">
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-500 text-green-900">Terminé</span>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm">2023-11-12 03:45</td>
<td class="px-6 py-4 whitespace-nowrap text-sm">Automatique</td>
<td class="px-6 py-4 whitespace-nowrap text-sm">Tous (28)</td>
<td class="px-6 py-4 whitespace-nowrap text-sm">276</td>
<td class="px-6 py-4 whitespace-nowrap">
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-500 text-green-900">Terminé</span>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm">2023-11-11 03:42</td>
<td class="px-6 py-4 whitespace-nowrap text-sm">Automatique</td>
<td class="px-6 py-4 whitespace-nowrap text-sm">Tous (28)</td>
<td class="px-6 py-4 whitespace-nowrap text-sm">301</td>
<td class="px-6 py-4 whitespace-nowrap">
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-500 text-green-900">Terminé</span>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
<!-- Add Site Modal -->
<div id="add-site-modal" class="hidden fixed inset-0 z-50 bg-black bg-opacity-75 flex items-center justify-center p-4">
<div class="bg-gray-800 rounded-lg w-full max-w-2xl max-h-[90vh] overflow-y-auto">
<div class="p-6">
<div class="flex justify-between items-center mb-4">
<h3 class="text-xl font-bold">Ajouter un Nouveau Site</h3>
<button id="close-site-modal" class="text-gray-400 hover:text-white">
<i class="fas fa-times"></i>
</button>
</div>
<div class="space-y-4">
<div>
<label class="block text-sm font-medium mb-1">Nom du Site*</label>
<input type="text" id="site-name" class="w-full bg-gray-700 border border-gray-600 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-purple-500" placeholder="Ex: StreamHub">
</div>
<div>
<label class="block text-sm font-medium mb-1">URL du Site*</label>
<input type="url" id="site-url" class="w-full bg-gray-700 border border-gray-600 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-purple-500" placeholder="https://example.com">
</div>
<div class="grid grid-cols-2 gap-4">
<div>
<label class="block text-sm font-medium mb-1">Pays*</label>
<select id="site-country" class="w-full bg-gray-700 border border-gray-600 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-purple-500">
<option value="">Sélectionner un pays</option>
<option value="france">France</option>
<option value="usa">USA</option>
<option value="canada">Canada</option>
<option value="uk">Royaume-Uni</option>
<option value="other">Autre</option>
</select>
</div>
<div>
<label class="block text-sm font-medium mb-1">Langue Principale*</label>
<select id="site-language" class="w-full bg-gray-700 border border-gray-600 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-purple-500">
<option value="">Sélectionner une langue</option>
<option value="fr">Français</option>
<option value="en">Anglais</option>
<option value="multi">Multi-langues</option>
</select>
</div>
</div>
<div>
<label class="block text-sm font-medium mb-1">Type de Contenu*</label>
<div class="grid grid-cols-3 gap-2">
<label class="inline-flex items-center">
<input type="checkbox" id="content-movies" class="form-checkbox text-purple-600" checked>
<span class="ml-2 text-sm">Films</span>
</label>
<label class="inline-flex items-center">
<input type="checkbox" id="content-series" class="form-checkbox text-purple-600" checked>
<span class="ml-2 text-sm">Séries</span>
</label>
<label class="inline-flex items-center">
<input type="checkbox" id="content-anime" class="form-checkbox text-purple-600">
<span class="ml-2 text-sm">Animés</span>
</label>
</div>
</div>
<div>
<label class="block text-sm font-medium mb-1">Priorité</label>
<select id="site-priority" class="w-full bg-gray-700 border border-gray-600 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-purple-500">
<option value="low">Faible</option>
<option value="medium" selected>Moyenne</option>
<option value="high">Haute</option>
</select>
</div>
<div>
<label class="block text-sm font-medium mb-1">API Key (optionnel)</label>
<input type="text" id="site-apikey" class="w-full bg-gray-700 border border-gray-600 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-purple-500" placeholder="Clé d'API si nécessaire">
</div>
<div>
<label class="block text-sm font-medium mb-1">Scanner automatiquement</label>
<label class="relative inline-flex items-center cursor-pointer">
<input type="checkbox" id="auto-scan" class="sr-only peer" checked>
<div class="w-11 h-6 bg-gray-700 peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-purple-600"></div>
<span class="ml-3 text-sm font-medium text-gray-300">Activer le scan automatique</span>
</label>
</div>
</div>
<div class="flex justify-end space-x-3 mt-6">
<button id="cancel-site-btn" class="bg-gray-700 hover:bg-gray-600 px-4 py-2 rounded-lg font-medium">
Annuler
</button>
<button id="save-site-btn" class="bg-purple-600 hover:bg-purple-700 px-4 py-2 rounded-lg font-medium flex items-center">
<i class="fas fa-save mr-2"></i> Enregistrer
</button>
</div>
</div>
</div>
</div>
<!-- Scan Sites Modal -->
<div id="scan-sites-modal" class="hidden fixed inset-0 z-50 bg-black bg-opacity-75 flex items-center justify-center p-4">
<div class="bg-gray-800 rounded-lg w-full max-w-2xl">
<div class="p-6">
<div class="flex justify-between items-center mb-4">
<h3 class="text-xl font-bold">Scanner les Sites</h3>
<button id="close-scan-modal" class="text-gray-400 hover:text-white">
<i class="fas fa-times"></i>
</button>
</div>
<div class="mb-4">
<div class="flex justify-between text-sm mb-1">
<span>Progression</span>
<span id="scan-progress-text">0%</span>
</div>
<div class="w-full bg-gray-700 rounded-full h-2.5">
<div id="scan-progress-bar" class="bg-purple-600 h-2.5 rounded-full" style="width: 0%"></div>
</div>
</div>
<div class="bg-gray-700 rounded-lg p-4 mb-4">
<div class="flex items-center">
<div id="scan-status-icon" class="text-yellow-500 mr-3">
<i class="fas fa-sync-alt fa-spin"></i>
</div>
<div>
<div id="scan-status" class="font-medium">Initialisation du scan...</div>
<div id="scan-details" class="text-sm text-gray-300">Préparation des sites à scanner</div>
</div>
</div>
</div>
<div class="overflow-y-auto max-h-60 mb-4">
<table class="min-w-full divide-y divide-gray-700">
<thead class="bg-gray-800">
<tr>
<th scope="col" class="px-4 py-2 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Site</th>
<th scope="col" class="px-4 py-2 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Statut</th>
<th scope="col" class="px-4 py-2 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Liens</th>
</tr>
</thead>
<tbody id="scan-results" class="bg-gray-800 divide-y divide-gray-700">
<!-- Results will be added here by JavaScript -->
</tbody>
</table>
</div>
<div class="flex justify-between items-center text-sm text-gray-400">
<div id="scan-summary">0/28 sites scannés</div>
<div id="scan-time">Temps écoulé: 0s</div>
</div>
<div class="flex justify-end mt-4">
<button id="close-scan-btn" class="bg-purple-600 hover:bg-purple-700 px-4 py-2 rounded-lg font-medium" disabled>
<i class="fas fa-times mr-2"></i> Fermer
</button>
</div>
</div>
</div>
</div>
<!-- Footer -->
<footer class="bg-gray-900 border-t border-gray-800 pt-12 pb-6">
<div class="container mx-auto px-4">
<div class="grid md:grid-cols-4 gap-8 mb-8">
<div>
<h3 class="text-xl font-bold mb-4">StreamMaster</h3>
<p class="text-gray-400">Solution complète de gestion et d'automatisation des sites de streaming. Mises à jour automatiques, vérification des liens et statistiques avancées.</p>
</div>
<div>
<h4 class="font-bold mb-4">Navigation</h4>
<ul class="space-y-2">
<li><a href="#dashboard" class="text-gray-400 hover:text-purple-400">Dashboard</a></li>
<li><a href="#sites" class="text-gray-400 hover:text-purple-400">Sites de Streaming</a></li>
<li><a href="#automation" class="text-gray-400 hover:text-purple-400">Automatisation</a></li>
<li><a href="#stats" class="text-gray-400 hover:text-purple-400">Statistiques</a></li>
</ul>
</div>
<div>
<h4 class="font-bold mb-4">Support</h4>
<ul class="space-y-2">
<li><a href="#" class="text-gray-400 hover:text-purple-400">Documentation</a></li>
<li><a href="#" class="text-gray-400 hover:text-purple-400">Forum</a></li>
<li><a href="#" class="text-gray-400 hover:text-purple-400">Contact</a></li>
</ul>
</div>
<div>
<h4 class="font-bold mb-4">Légal</h4>
<ul class="space-y-2">
<li><a href="#" class="text-gray-400 hover:text-purple-400">Conditions d'utilisation</a></li>
<li><a href="#" class="text-gray-400 hover:text-purple-400">Politique de confidentialité</a></li>
</ul>
</div>
</div>
<div class="border-t border-gray-800 pt-6 text-center text-gray-500 text-sm">
<p>© 2023 StreamMaster. Tous droits réservés. Version 3.1.0</p>
</div>
</div>
</footer>
<script>
// Gestion des modales
document.addEventListener('DOMContentLoaded', () => {
// Modal Ajout de Site
document.getElementById('add-site-btn').addEventListener('click', () => {
document.getElementById('add-site-modal').classList.remove('hidden');
});
document.getElementById('close-site-modal').addEventListener('click', () => {
document.getElementById('add-site-modal').classList.add('hidden');
});
document.getElementById('cancel-site-btn').addEventListener('click', () => {
document.getElementById('add-site-modal').classList.add('hidden');
});
// Modal Scan de Sites
document.getElementById('scan-sites-btn').addEventListener('click', () => {
document.getElementById('scan-sites-modal').classList.remove('hidden');
simulateSiteScan();
});
document.getElementById('close-scan-modal').addEventListener('click', () => {
document.getElementById('scan-sites-modal').classList.add('hidden');
});
document.getElementById('close-scan-btn').addEventListener('click', () => {
document.getElementById('scan-sites-modal').classList.add('hidden');
});
// Gestion du seuil d'alerte
const thresholdSlider = document.getElementById('alert-threshold');
const thresholdValue = document.getElementById('threshold-value');
thresholdSlider.addEventListener('input', () => {
thresholdValue.textContent = `${thresholdSlider.value}%`;
});
// Gestion des notifications
const emailNotifications = document.getElementById('email-notifications');
const webhookNotifications = document.getElementById('webhook-notifications');
const emailSettings = document.getElementById('email-settings');
const webhookSettings = document.getElementById('webhook-settings');
emailNotifications.addEventListener('change', () => {
emailSettings.classList.toggle('hidden', !emailNotifications.checked);
});
webhookNotifications.addEventListener('change', () => {
webhookSettings.classList.toggle('hidden', !webhookNotifications.checked);
});
});
// Simulation du scan de sites
function simulateSiteScan() {
const sites = [
{ name: 'StreamHub', url: 'streamhub.to' },
{ name: 'MovieCloud', url: 'moviecloud.cc' },
{ name: 'FilmBox', url: 'filmbox.pro' },
{ name: 'CinéStream', url: 'cinestream.xyz' },
{ name: 'StreamZone', url: 'streamzone.io' },
{ name: 'FlixHQ', url: 'flixhq.net' }
];
const scanResults = document.getElementById('scan-results');
const scanStatus = document.getElementById('scan-status');
const scanDetails = document.getElementById('scan-details');
const scanStatusIcon = document.getElementById('scan-status-icon');
const scanProgressBar = document.getElementById('scan-progress-bar');
const scanProgressText = document.getElementById('scan-progress-text');
const scanSummary = document.getElementById('scan-summary');
const scanTime = document.getElementById('scan-time');
const closeScanBtn = document.getElementById('close-scan-btn');
let completed = 0;
const totalSites = sites.length;
const startTime = new Date();
scanResults.innerHTML = '';
const updateTime = () => {
const elapsed = Math.floor((new Date() - startTime) / 1000);
scanTime.textContent = `Temps écoulé: ${elapsed}s`;
};
const timer = setInterval(updateTime, 1000);
sites.forEach((site, index) => {
const row = document.createElement('tr');
row.innerHTML = `
<td class="px-4 py-2 whitespace-nowrap text-sm">${site.name}</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">
<span class="text-yellow-500">En attente</span>
</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">-</td>
`;
scanResults.appendChild(row);
// Simulation du scan avec des délais aléatoires
setTimeout(() => {
const status = Math.random() > 0.1 ? 'success' : 'error';
const linksFound = Math.floor(Math.random() * 50) + 10;
row.innerHTML = `
<td class="px-4 py-2 whitespace-nowrap text-sm">${site.name}</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">
<span class="${status === 'success' ? 'text-green-500' : 'text-red-500'}">
${status === 'success' ? 'Succès' : 'Erreur'}
</span>
</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">
${status === 'success' ? linksFound : '0'}
</td>
`;
completed++;
const progress = Math.floor((completed / totalSites) * 100);
scanProgressBar.style.width = `${progress}%`;
scanProgressText.textContent = `${progress}%`;
scanSummary.textContent = `${completed}/${totalSites} sites scannés`;
if (completed === totalSites) {
scanStatus.textContent = 'Scan terminé';
scanDetails.textContent = `${totalSites} sites scannés avec succès`;
scanStatusIcon.innerHTML = '<i class="fas fa-check-circle text-green-500"></i>';
closeScanBtn.disabled = false;
clearInterval(timer);
}
}, 1000 + (index * 1500));
});
}
</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/stream-4u" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>