Spaces:
Running
Running
Add 2 files
Browse files- index.html +185 -269
- prompts.txt +4 -1
index.html
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
<head>
|
4 |
<meta charset="UTF-8">
|
5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6 |
-
<title>
|
7 |
<script src="https://cdn.tailwindcss.com"></script>
|
8 |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
9 |
<style>
|
@@ -18,366 +18,282 @@
|
|
18 |
height: 400px;
|
19 |
object-fit: cover;
|
20 |
}
|
21 |
-
.
|
22 |
-
|
23 |
-
}
|
24 |
-
@keyframes spin {
|
25 |
-
0% { transform: rotate(0deg); }
|
26 |
-
100% { transform: rotate(360deg); }
|
27 |
-
}
|
28 |
-
.server-btn:hover {
|
29 |
-
background-color: #2d3748;
|
30 |
-
}
|
31 |
-
.server-btn.active {
|
32 |
-
background-color: #3182ce;
|
33 |
}
|
34 |
</style>
|
35 |
</head>
|
36 |
<body class="bg-gray-900 text-white">
|
37 |
<!-- Header -->
|
38 |
<header class="bg-black py-4 px-6 shadow-lg sticky top-0 z-50">
|
39 |
-
<div class="container mx-auto flex
|
40 |
-
<div class="flex items-center
|
41 |
<i class="fas fa-film text-red-600 text-3xl mr-3"></i>
|
42 |
-
<h1 class="text-2xl font-bold bg-gradient-to-r from-red-600 to-purple-600 bg-clip-text text-transparent">
|
43 |
-
</div>
|
44 |
-
|
45 |
-
<div class="relative w-full md:w-1/3">
|
46 |
-
<input type="text" placeholder="Rechercher un film..."
|
47 |
-
class="w-full bg-gray-800 rounded-full py-2 px-4 pl-10 text-white focus:border-blue-500">
|
48 |
-
<i class="fas fa-search absolute left-3 top-3 text-gray-400"></i>
|
49 |
</div>
|
50 |
|
51 |
-
<nav class="hidden md:flex space-x-6
|
52 |
<a href="#" class="hover:text-red-500 transition">Accueil</a>
|
53 |
-
<a href="#" class="hover:text-red-500 transition">
|
54 |
-
<a href="#" class="hover:text-red-500 transition">
|
55 |
<a href="#" class="hover:text-red-500 transition">Ma liste</a>
|
56 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
Connexion
|
58 |
</button>
|
59 |
-
</
|
60 |
</div>
|
61 |
</header>
|
62 |
|
63 |
<!-- Hero Section -->
|
64 |
-
<section class="relative h-96 bg-gradient-to-r from-gray-900 to-gray-800
|
65 |
-
<div class="
|
66 |
-
|
67 |
-
<
|
68 |
-
|
69 |
-
<
|
70 |
-
|
71 |
-
|
|
|
|
|
72 |
</button>
|
73 |
</div>
|
74 |
</div>
|
|
|
75 |
</section>
|
76 |
|
77 |
<!-- Main Content -->
|
78 |
<main class="container mx-auto px-4 py-8">
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
<button class="server-btn active bg-blue-600 text-white px-4 py-2 rounded-full text-sm">
|
84 |
-
<i class="fas fa-bolt mr-2"></i> Rapide
|
85 |
-
</button>
|
86 |
-
<button class="server-btn bg-gray-700 hover:bg-gray-600 px-4 py-2 rounded-full text-sm">
|
87 |
-
<i class="fas fa-shield-alt mr-2"></i> Premium
|
88 |
-
</button>
|
89 |
-
<button class="server-btn bg-gray-700 hover:bg-gray-600 px-4 py-2 rounded-full text-sm">
|
90 |
-
<i class="fas fa-globe mr-2"></i> International
|
91 |
-
</button>
|
92 |
</div>
|
93 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
|
95 |
-
<!-- Movies Sections -->
|
96 |
<section class="mb-12">
|
97 |
<div class="flex justify-between items-center mb-6">
|
98 |
-
<h2 class="text-2xl font-bold">
|
99 |
-
<a href="#" class="text-
|
100 |
</div>
|
101 |
-
|
102 |
-
|
103 |
-
|
|
|
|
|
|
|
104 |
</div>
|
105 |
</section>
|
106 |
-
|
107 |
<section class="mb-12">
|
108 |
<div class="flex justify-between items-center mb-6">
|
109 |
-
<h2 class="text-2xl font-bold">
|
110 |
-
<a href="#" class="text-
|
111 |
</div>
|
112 |
-
|
113 |
-
|
114 |
-
|
|
|
|
|
|
|
115 |
</div>
|
116 |
</section>
|
117 |
</main>
|
118 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
<!-- Footer -->
|
120 |
-
<footer class="bg-black py-
|
121 |
<div class="container mx-auto grid grid-cols-1 md:grid-cols-4 gap-8">
|
122 |
<div>
|
123 |
-
<h3 class="text-xl font-bold mb-4">
|
124 |
-
<p class="text-gray-
|
125 |
</div>
|
126 |
-
|
127 |
<div>
|
128 |
-
<h4 class="font-semibold mb-4">Navigation</h4>
|
129 |
<ul class="space-y-2">
|
130 |
<li><a href="#" class="text-gray-400 hover:text-white transition">Accueil</a></li>
|
131 |
<li><a href="#" class="text-gray-400 hover:text-white transition">Films</a></li>
|
132 |
<li><a href="#" class="text-gray-400 hover:text-white transition">Séries</a></li>
|
|
|
133 |
</ul>
|
134 |
</div>
|
135 |
-
|
136 |
<div>
|
137 |
-
<h4 class="font-semibold mb-4">
|
138 |
<ul class="space-y-2">
|
139 |
-
<li><a href="#" class="text-gray-400 hover:text-white transition">
|
140 |
-
<li><a href="#" class="text-gray-400 hover:text-white transition">
|
141 |
-
<li><a href="#" class="text-gray-400 hover:text-white transition">
|
142 |
</ul>
|
143 |
</div>
|
144 |
-
|
145 |
<div>
|
146 |
-
<h4 class="font-semibold mb-4">
|
147 |
<ul class="space-y-2">
|
148 |
-
<li
|
149 |
-
|
|
|
|
|
|
|
|
|
150 |
</ul>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
151 |
</div>
|
152 |
</div>
|
153 |
-
|
154 |
-
|
155 |
-
<p>© 2024
|
156 |
</div>
|
157 |
</footer>
|
158 |
|
159 |
-
<!-- Movie Modal -->
|
160 |
-
<div id="movie-modal" class="fixed inset-0 bg-black bg-opacity-90 z-50 hidden overflow-y-auto">
|
161 |
-
<div class="container mx-auto py-12 px-4">
|
162 |
-
<div class="flex justify-end mb-4">
|
163 |
-
<button id="close-modal" class="text-white text-2xl hover:text-red-500 transition">
|
164 |
-
<i class="fas fa-times"></i>
|
165 |
-
</button>
|
166 |
-
</div>
|
167 |
-
|
168 |
-
<div class="bg-gray-800 rounded-lg overflow-hidden">
|
169 |
-
<div class="flex flex-col lg:flex-row">
|
170 |
-
<div class="lg:w-1/3">
|
171 |
-
<img id="modal-poster" src="" alt="Movie Poster" class="w-full h-auto">
|
172 |
-
</div>
|
173 |
-
|
174 |
-
<div class="lg:w-2/3 p-6">
|
175 |
-
<h2 id="modal-title" class="text-3xl font-bold mb-2"></h2>
|
176 |
-
<div class="flex flex-wrap items-center gap-2 mb-4">
|
177 |
-
<span id="modal-year" class="bg-gray-700 px-2 py-1 rounded text-sm"></span>
|
178 |
-
<span id="modal-rating" class="bg-red-600 px-2 py-1 rounded text-sm"></span>
|
179 |
-
</div>
|
180 |
-
|
181 |
-
<p id="modal-plot" class="text-gray-300 mb-6"></p>
|
182 |
-
|
183 |
-
<div class="mb-6">
|
184 |
-
<h4 class="font-semibold mb-2">Serveurs disponibles</h4>
|
185 |
-
<div class="grid grid-cols-1 sm:grid-cols-2 gap-2" id="modal-servers">
|
186 |
-
<!-- Options de serveur -->
|
187 |
-
</div>
|
188 |
-
</div>
|
189 |
-
|
190 |
-
<button id="play-movie" class="bg-red-600 hover:bg-red-700 text-white py-3 px-8 rounded-full font-semibold transition flex items-center">
|
191 |
-
<i class="fas fa-play mr-2"></i> Regarder maintenant
|
192 |
-
</button>
|
193 |
-
</div>
|
194 |
-
</div>
|
195 |
-
</div>
|
196 |
-
</div>
|
197 |
-
</div>
|
198 |
-
|
199 |
<script>
|
200 |
-
//
|
201 |
-
|
202 |
-
{
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
{ name: "Serveur Rapide", url: "#", quality: "1080p" },
|
223 |
-
{ name: "Serveur International", url: "#", quality: "720p" }
|
224 |
-
]
|
225 |
-
},
|
226 |
-
{
|
227 |
-
id: 3,
|
228 |
-
title: "Avatar 3",
|
229 |
-
year: 2025,
|
230 |
-
rating: "4.7/5",
|
231 |
-
plot: "La suite des aventures des Na'vi sur Pandora.",
|
232 |
-
poster: "https://m.media-amazon.com/images/M/MV5BZDA0OGQxNTItMDZkMC00N2UyLTg3MzMtYTJmNjg3N2E0MTM0XkEyXkFqcGdeQXVyMjY1MjkzMjE@._V1_FMjpg_UX1000_.jpg",
|
233 |
-
servers: [
|
234 |
-
{ name: "Serveur Premium", url: "#", quality: "4K" }
|
235 |
-
]
|
236 |
-
},
|
237 |
-
{
|
238 |
-
id: 4,
|
239 |
-
title: "Mission Impossible 8",
|
240 |
-
year: 2025,
|
241 |
-
rating: "4.6/5",
|
242 |
-
plot: "Nouvelle mission d'Ethan Hunt et son équipe.",
|
243 |
-
poster: "https://m.media-amazon.com/images/M/MV5BZjBiOGIyY2YtOTA3OC00YzY1LThkYjktMGRkYTNhNTExY2I2XkEyXkFqcGdeQXVyMTEyMjM2NDc2._V1_FMjpg_UX1000_.jpg",
|
244 |
-
servers: [
|
245 |
-
{ name: "Serveur Rapide", url: "#", quality: "1080p" },
|
246 |
-
{ name: "Serveur International", url: "#", quality: "720p" }
|
247 |
-
]
|
248 |
-
},
|
249 |
-
{
|
250 |
-
id: 5,
|
251 |
-
title: "Deadpool 3",
|
252 |
-
year: 2024,
|
253 |
-
rating: "4.9/5",
|
254 |
-
plot: "Deadpool rejoint l'univers cinématographique Marvel.",
|
255 |
-
poster: "https://m.media-amazon.com/images/M/MV5BMDdmMTBiNTYtMDIzNi00NGVlLWIzMDYtZTk3MTQ3NGQxZGEwXkEyXkFqcGdeQXVyMzMwOTU5MDk@._V1_FMjpg_UX1000_.jpg",
|
256 |
-
servers: [
|
257 |
-
{ name: "Serveur Premium", url: "#", quality: "4K" },
|
258 |
-
{ name: "Serveur Rapide", url: "#", quality: "1080p" }
|
259 |
-
]
|
260 |
-
},
|
261 |
-
{
|
262 |
-
id: 6,
|
263 |
-
title: "Jurassic World 4",
|
264 |
-
year: 2025,
|
265 |
-
rating: "4.4/5",
|
266 |
-
plot: "Nouveau chapitre de la franchise Jurassic World.",
|
267 |
-
poster: "https://m.media-amazon.com/images/M/MV5BOTBjMjA4NmYtN2RjMi00YWU5LTk0OTgtZDY4YTM5ODFkZGU4XkEyXkFqcGdeQXVyNTI4MzE4MDU@._V1_FMjpg_UX1000_.jpg",
|
268 |
-
servers: [
|
269 |
-
{ name: "Serveur Rapide", url: "#", quality: "1080p" }
|
270 |
-
]
|
271 |
}
|
272 |
-
|
273 |
|
274 |
-
//
|
275 |
-
function
|
276 |
const container = document.getElementById(containerId);
|
277 |
container.innerHTML = '';
|
278 |
|
279 |
movies.forEach(movie => {
|
|
|
|
|
|
|
|
|
280 |
const card = document.createElement('div');
|
281 |
card.className = 'movie-card bg-gray-800 rounded-lg overflow-hidden cursor-pointer';
|
282 |
-
card.dataset.id = movie.id;
|
283 |
card.innerHTML = `
|
284 |
<div class="relative">
|
285 |
-
<img src="${
|
286 |
<div class="absolute inset-0 bg-black bg-opacity-0 hover:bg-opacity-50 transition flex items-center justify-center">
|
287 |
<i class="fas fa-play text-4xl opacity-0 hover:opacity-100 transition text-red-500"></i>
|
288 |
</div>
|
289 |
</div>
|
290 |
<div class="p-3">
|
291 |
<h3 class="font-semibold truncate">${movie.title}</h3>
|
292 |
-
<div class="
|
293 |
-
|
294 |
-
<span
|
|
|
|
|
295 |
</div>
|
296 |
</div>
|
297 |
`;
|
298 |
|
299 |
-
card.addEventListener('click', () =>
|
|
|
|
|
|
|
300 |
container.appendChild(card);
|
301 |
});
|
302 |
}
|
303 |
|
304 |
-
// Ouvrir
|
305 |
function openMovieModal(movie) {
|
306 |
-
document.getElementById('modal
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
document.getElementById('modal-plot').textContent = movie.plot;
|
311 |
-
|
312 |
-
const serversContainer = document.getElementById('modal-servers');
|
313 |
-
serversContainer.innerHTML = '';
|
314 |
-
|
315 |
-
movie.servers.forEach(server => {
|
316 |
-
const serverBtn = document.createElement('button');
|
317 |
-
serverBtn.className = 'server-btn bg-gray-700 hover:bg-gray-600 text-left p-3 rounded flex items-center';
|
318 |
-
serverBtn.innerHTML = `
|
319 |
-
<i class="fas fa-server mr-2 text-blue-400"></i>
|
320 |
-
<div>
|
321 |
-
<div class="font-medium">${server.name}</div>
|
322 |
-
<div class="text-xs text-gray-400">${server.quality}</div>
|
323 |
-
</div>
|
324 |
-
`;
|
325 |
-
serverBtn.addEventListener('click', () => {
|
326 |
-
document.querySelectorAll('#modal-servers .server-btn').forEach(btn => {
|
327 |
-
btn.classList.remove('active');
|
328 |
-
});
|
329 |
-
serverBtn.classList.add('active');
|
330 |
-
document.getElementById('play-movie').dataset.url = server.url;
|
331 |
-
});
|
332 |
-
serversContainer.appendChild(serverBtn);
|
333 |
-
});
|
334 |
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
|
340 |
-
|
341 |
-
|
342 |
}
|
343 |
|
344 |
-
// Fermer
|
345 |
-
|
346 |
-
document.getElementById('
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
// Initialisation
|
351 |
-
document.addEventListener('DOMContentLoaded', () => {
|
352 |
-
// Générer les sections de films
|
353 |
-
generateMovieCards(moviesDatabase, 'new-movies');
|
354 |
-
generateMovieCards([...moviesDatabase].reverse(), 'top-movies');
|
355 |
-
|
356 |
-
// Fermer le modal
|
357 |
-
document.getElementById('close-modal').addEventListener('click', closeModal);
|
358 |
-
|
359 |
-
// Jouer le film (ouvrir dans un nouvel onglet)
|
360 |
-
document.getElementById('play-movie').addEventListener('click', () => {
|
361 |
-
const url = document.getElementById('play-movie').dataset.url;
|
362 |
-
if (url && url !== '#') {
|
363 |
-
window.open(url, '_blank', 'noopener,noreferrer');
|
364 |
-
} else {
|
365 |
-
alert('Ceci est une démonstration. Les liens de streaming ne sont pas fonctionnels.');
|
366 |
-
}
|
367 |
-
});
|
368 |
-
|
369 |
-
// Gestion des serveurs
|
370 |
-
document.querySelectorAll('.server-btn').forEach(btn => {
|
371 |
-
btn.addEventListener('click', () => {
|
372 |
-
document.querySelectorAll('.server-btn').forEach(b => {
|
373 |
-
b.classList.remove('active', 'bg-blue-600');
|
374 |
-
b.classList.add('bg-gray-700');
|
375 |
-
});
|
376 |
-
btn.classList.add('active', 'bg-blue-600');
|
377 |
-
btn.classList.remove('bg-gray-700');
|
378 |
-
});
|
379 |
-
});
|
380 |
});
|
|
|
|
|
|
|
381 |
</script>
|
382 |
<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/cin-stream" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
|
383 |
</html>
|
|
|
3 |
<head>
|
4 |
<meta charset="UTF-8">
|
5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6 |
+
<title>CineStream - Films en Français</title>
|
7 |
<script src="https://cdn.tailwindcss.com"></script>
|
8 |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
9 |
<style>
|
|
|
18 |
height: 400px;
|
19 |
object-fit: cover;
|
20 |
}
|
21 |
+
.modal {
|
22 |
+
transition: opacity 0.3s ease;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
}
|
24 |
</style>
|
25 |
</head>
|
26 |
<body class="bg-gray-900 text-white">
|
27 |
<!-- Header -->
|
28 |
<header class="bg-black py-4 px-6 shadow-lg sticky top-0 z-50">
|
29 |
+
<div class="container mx-auto flex justify-between items-center">
|
30 |
+
<div class="flex items-center">
|
31 |
<i class="fas fa-film text-red-600 text-3xl mr-3"></i>
|
32 |
+
<h1 class="text-2xl font-bold bg-gradient-to-r from-red-600 to-purple-600 bg-clip-text text-transparent">CineStream</h1>
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
</div>
|
34 |
|
35 |
+
<nav class="hidden md:flex space-x-6">
|
36 |
<a href="#" class="hover:text-red-500 transition">Accueil</a>
|
37 |
+
<a href="#" class="hover:text-red-500 transition">Films</a>
|
38 |
+
<a href="#" class="hover:text-red-500 transition">Séries</a>
|
39 |
<a href="#" class="hover:text-red-500 transition">Ma liste</a>
|
40 |
+
</nav>
|
41 |
+
|
42 |
+
<div class="flex items-center space-x-4">
|
43 |
+
<div class="relative">
|
44 |
+
<input type="text" placeholder="Rechercher..."
|
45 |
+
class="bg-gray-800 rounded-full py-2 px-4 pl-10 text-white focus:border-blue-500 w-40 md:w-64">
|
46 |
+
<i class="fas fa-search absolute left-3 top-3 text-gray-400"></i>
|
47 |
+
</div>
|
48 |
+
<button class="bg-red-600 hover:bg-red-700 px-4 py-2 rounded-full transition">
|
49 |
Connexion
|
50 |
</button>
|
51 |
+
</div>
|
52 |
</div>
|
53 |
</header>
|
54 |
|
55 |
<!-- Hero Section -->
|
56 |
+
<section class="relative h-96 bg-gradient-to-r from-gray-900 to-gray-800 flex items-center">
|
57 |
+
<div class="container mx-auto px-6 z-10">
|
58 |
+
<h2 class="text-4xl md:text-5xl font-bold mb-4">Vos films préférés en français</h2>
|
59 |
+
<p class="text-xl mb-6 max-w-2xl">Découvrez une vaste collection de films français et internationaux</p>
|
60 |
+
<div class="flex space-x-4">
|
61 |
+
<button class="bg-red-600 hover:bg-red-700 px-6 py-3 rounded-full transition flex items-center">
|
62 |
+
<i class="fas fa-play mr-2"></i> Regarder maintenant
|
63 |
+
</button>
|
64 |
+
<button class="bg-gray-800 hover:bg-gray-700 px-6 py-3 rounded-full transition flex items-center">
|
65 |
+
<i class="fas fa-info-circle mr-2"></i> Plus d'infos
|
66 |
</button>
|
67 |
</div>
|
68 |
</div>
|
69 |
+
<div class="absolute inset-0 bg-black opacity-50"></div>
|
70 |
</section>
|
71 |
|
72 |
<!-- Main Content -->
|
73 |
<main class="container mx-auto px-4 py-8">
|
74 |
+
<section class="mb-12">
|
75 |
+
<div class="flex justify-between items-center mb-6">
|
76 |
+
<h2 class="text-2xl font-bold">Nouveaux Films Français</h2>
|
77 |
+
<a href="#" class="text-gray-400 hover:text-white transition">Voir tout</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
</div>
|
79 |
+
<div class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6 gap-4" id="french-movies">
|
80 |
+
<!-- Films chargés via API -->
|
81 |
+
<div class="text-center py-8">
|
82 |
+
<i class="fas fa-spinner fa-spin text-4xl text-red-500 mb-2"></i>
|
83 |
+
<p>Chargement des films...</p>
|
84 |
+
</div>
|
85 |
+
</div>
|
86 |
+
</section>
|
87 |
|
|
|
88 |
<section class="mb-12">
|
89 |
<div class="flex justify-between items-center mb-6">
|
90 |
+
<h2 class="text-2xl font-bold">Films Populaires</h2>
|
91 |
+
<a href="#" class="text-gray-400 hover:text-white transition">Voir tout</a>
|
92 |
</div>
|
93 |
+
<div class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6 gap-4" id="popular-movies">
|
94 |
+
<!-- Films chargés via API -->
|
95 |
+
<div class="text-center py-8">
|
96 |
+
<i class="fas fa-spinner fa-spin text-4xl text-red-500 mb-2"></i>
|
97 |
+
<p>Chargement des films...</p>
|
98 |
+
</div>
|
99 |
</div>
|
100 |
</section>
|
101 |
+
|
102 |
<section class="mb-12">
|
103 |
<div class="flex justify-between items-center mb-6">
|
104 |
+
<h2 class="text-2xl font-bold">Recommandations</h2>
|
105 |
+
<a href="#" class="text-gray-400 hover:text-white transition">Voir tout</a>
|
106 |
</div>
|
107 |
+
<div class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6 gap-4" id="recommended-movies">
|
108 |
+
<!-- Films chargés via API -->
|
109 |
+
<div class="text-center py-8">
|
110 |
+
<i class="fas fa-spinner fa-spin text-4xl text-red-500 mb-2"></i>
|
111 |
+
<p>Chargement des films...</p>
|
112 |
+
</div>
|
113 |
</div>
|
114 |
</section>
|
115 |
</main>
|
116 |
|
117 |
+
<!-- Player Modal -->
|
118 |
+
<div id="player-modal" class="fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-90 modal opacity-0 pointer-events-none">
|
119 |
+
<div class="relative w-full max-w-6xl bg-gray-900 rounded-lg overflow-hidden">
|
120 |
+
<button id="close-modal" class="absolute top-4 right-4 bg-gray-800 hover:bg-gray-700 rounded-full w-10 h-10 flex items-center justify-center z-50">
|
121 |
+
<i class="fas fa-times"></i>
|
122 |
+
</button>
|
123 |
+
<div class="aspect-w-16 aspect-h-9">
|
124 |
+
<div id="player-container" class="w-full h-0 pb-[56.25%] relative">
|
125 |
+
<div class="absolute inset-0 flex items-center justify-center bg-gray-800">
|
126 |
+
<div class="text-center">
|
127 |
+
<i class="fas fa-exclamation-triangle text-4xl text-red-500 mb-4"></i>
|
128 |
+
<h3 class="text-xl font-bold">Contenu non disponible</h3>
|
129 |
+
<p class="mt-2 text-gray-400">Ceci est une démonstration. Le film n'est pas réellement disponible.</p>
|
130 |
+
</div>
|
131 |
+
</div>
|
132 |
+
</div>
|
133 |
+
</div>
|
134 |
+
<div class="p-6">
|
135 |
+
<h2 id="movie-title" class="text-2xl font-bold mb-2">Titre du film</h2>
|
136 |
+
<div class="flex items-center text-gray-400 mb-4">
|
137 |
+
<span id="movie-year" class="mr-4">2023</span>
|
138 |
+
<span id="movie-rating" class="flex items-center">
|
139 |
+
<i class="fas fa-star text-yellow-400 mr-1"></i> 4.5
|
140 |
+
</span>
|
141 |
+
</div>
|
142 |
+
<p id="movie-overview" class="text-gray-300">Description du film...</p>
|
143 |
+
<div class="mt-6 flex space-x-4">
|
144 |
+
<button class="bg-red-600 hover:bg-red-700 px-6 py-2 rounded-full transition flex items-center">
|
145 |
+
<i class="fas fa-play mr-2"></i> Lire
|
146 |
+
</button>
|
147 |
+
<button class="bg-gray-800 hover:bg-gray-700 px-6 py-2 rounded-full transition flex items-center">
|
148 |
+
<i class="fas fa-plus mr-2"></i> Ma liste
|
149 |
+
</button>
|
150 |
+
</div>
|
151 |
+
</div>
|
152 |
+
</div>
|
153 |
+
</div>
|
154 |
+
|
155 |
<!-- Footer -->
|
156 |
+
<footer class="bg-black py-12 px-6">
|
157 |
<div class="container mx-auto grid grid-cols-1 md:grid-cols-4 gap-8">
|
158 |
<div>
|
159 |
+
<h3 class="text-xl font-bold mb-4">CineStream</h3>
|
160 |
+
<p class="text-gray-500">Le meilleur des films français et internationaux en un seul endroit.</p>
|
161 |
</div>
|
|
|
162 |
<div>
|
163 |
+
<h4 class="text-lg font-semibold mb-4">Navigation</h4>
|
164 |
<ul class="space-y-2">
|
165 |
<li><a href="#" class="text-gray-400 hover:text-white transition">Accueil</a></li>
|
166 |
<li><a href="#" class="text-gray-400 hover:text-white transition">Films</a></li>
|
167 |
<li><a href="#" class="text-gray-400 hover:text-white transition">Séries</a></li>
|
168 |
+
<li><a href="#" class="text-gray-400 hover:text-white transition">Nouveautés</a></li>
|
169 |
</ul>
|
170 |
</div>
|
|
|
171 |
<div>
|
172 |
+
<h4 class="text-lg font-semibold mb-4">Légal</h4>
|
173 |
<ul class="space-y-2">
|
174 |
+
<li><a href="#" class="text-gray-400 hover:text-white transition">Conditions d'utilisation</a></li>
|
175 |
+
<li><a href="#" class="text-gray-400 hover:text-white transition">Politique de confidentialité</a></li>
|
176 |
+
<li><a href="#" class="text-gray-400 hover:text-white transition">Cookies</a></li>
|
177 |
</ul>
|
178 |
</div>
|
|
|
179 |
<div>
|
180 |
+
<h4 class="text-lg font-semibold mb-4">Contact</h4>
|
181 |
<ul class="space-y-2">
|
182 |
+
<li class="flex items-center text-gray-400">
|
183 |
+
<i class="fas fa-envelope mr-2"></i> [email protected]
|
184 |
+
</li>
|
185 |
+
<li class="flex items-center text-gray-400">
|
186 |
+
<i class="fas fa-phone mr-2"></i> +33 1 23 45 67 89
|
187 |
+
</li>
|
188 |
</ul>
|
189 |
+
<div class="flex space-x-4 mt-4">
|
190 |
+
<a href="#" class="text-gray-400 hover:text-white transition">
|
191 |
+
<i class="fab fa-facebook-f"></i>
|
192 |
+
</a>
|
193 |
+
<a href="#" class="text-gray-400 hover:text-white transition">
|
194 |
+
<i class="fab fa-twitter"></i>
|
195 |
+
</a>
|
196 |
+
<a href="#" class="text-gray-400 hover:text-white transition">
|
197 |
+
<i class="fab fa-instagram"></i>
|
198 |
+
</a>
|
199 |
+
</div>
|
200 |
</div>
|
201 |
</div>
|
202 |
+
<div class="container mx-auto text-center text-gray-500 mt-12">
|
203 |
+
<p>Ce site est une démonstration. Les films ne sont pas disponibles en streaming.</p>
|
204 |
+
<p class="mt-2">© 2024 CineStream. Tous droits réservés.</p>
|
205 |
</div>
|
206 |
</footer>
|
207 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
208 |
<script>
|
209 |
+
// Fonction pour charger les films depuis l'API TMDB
|
210 |
+
async function loadMovies() {
|
211 |
+
try {
|
212 |
+
// Films français
|
213 |
+
const frenchResponse = await fetch(`https://api.themoviedb.org/3/discover/movie?api_key=3fd2be6f0c70a2a598f084ddfb75487c&language=fr-FR®ion=FR&sort_by=release_date.desc&with_original_language=fr`);
|
214 |
+
const frenchData = await frenchResponse.json();
|
215 |
+
displayMovies(frenchData.results.slice(0, 12), 'french-movies');
|
216 |
+
|
217 |
+
// Films populaires
|
218 |
+
const popularResponse = await fetch(`https://api.themoviedb.org/3/movie/popular?api_key=3fd2be6f0c70a2a598f084ddfb75487c&language=fr-FR®ion=FR`);
|
219 |
+
const popularData = await popularResponse.json();
|
220 |
+
displayMovies(popularData.results.slice(0, 12), 'popular-movies');
|
221 |
+
|
222 |
+
// Films recommandés
|
223 |
+
const recommendedResponse = await fetch(`https://api.themoviedb.org/3/movie/top_rated?api_key=3fd2be6f0c70a2a598f084ddfb75487c&language=fr-FR®ion=FR`);
|
224 |
+
const recommendedData = await recommendedResponse.json();
|
225 |
+
displayMovies(recommendedData.results.slice(0, 12), 'recommended-movies');
|
226 |
+
} catch (error) {
|
227 |
+
console.error("Erreur lors du chargement des films:", error);
|
228 |
+
document.getElementById('french-movies').innerHTML = '<p class="text-red-500">Erreur de chargement des films</p>';
|
229 |
+
document.getElementById('popular-movies').innerHTML = '<p class="text-red-500">Erreur de chargement des films</p>';
|
230 |
+
document.getElementById('recommended-movies').innerHTML = '<p class="text-red-500">Erreur de chargement des films</p>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
231 |
}
|
232 |
+
}
|
233 |
|
234 |
+
// Afficher les films
|
235 |
+
function displayMovies(movies, containerId) {
|
236 |
const container = document.getElementById(containerId);
|
237 |
container.innerHTML = '';
|
238 |
|
239 |
movies.forEach(movie => {
|
240 |
+
const posterPath = movie.poster_path
|
241 |
+
? `https://image.tmdb.org/t/p/w500${movie.poster_path}`
|
242 |
+
: 'https://via.placeholder.com/500x750?text=Affiche+non+disponible';
|
243 |
+
|
244 |
const card = document.createElement('div');
|
245 |
card.className = 'movie-card bg-gray-800 rounded-lg overflow-hidden cursor-pointer';
|
|
|
246 |
card.innerHTML = `
|
247 |
<div class="relative">
|
248 |
+
<img src="${posterPath}" alt="${movie.title}" class="w-full h-64 object-cover">
|
249 |
<div class="absolute inset-0 bg-black bg-opacity-0 hover:bg-opacity-50 transition flex items-center justify-center">
|
250 |
<i class="fas fa-play text-4xl opacity-0 hover:opacity-100 transition text-red-500"></i>
|
251 |
</div>
|
252 |
</div>
|
253 |
<div class="p-3">
|
254 |
<h3 class="font-semibold truncate">${movie.title}</h3>
|
255 |
+
<div class="text-sm text-gray-400 mt-1">
|
256 |
+
${movie.release_date ? movie.release_date.split('-')[0] : 'N/A'}
|
257 |
+
<span class="float-right">
|
258 |
+
<i class="fas fa-star text-yellow-400"></i> ${movie.vote_average ? movie.vote_average.toFixed(1) : 'N/A'}
|
259 |
+
</span>
|
260 |
</div>
|
261 |
</div>
|
262 |
`;
|
263 |
|
264 |
+
card.addEventListener('click', () => {
|
265 |
+
openMovieModal(movie);
|
266 |
+
});
|
267 |
+
|
268 |
container.appendChild(card);
|
269 |
});
|
270 |
}
|
271 |
|
272 |
+
// Ouvrir la modal avec les détails du film
|
273 |
function openMovieModal(movie) {
|
274 |
+
const modal = document.getElementById('player-modal');
|
275 |
+
const posterPath = movie.poster_path
|
276 |
+
? `https://image.tmdb.org/t/p/w500${movie.poster_path}`
|
277 |
+
: 'https://via.placeholder.com/500x750?text=Affiche+non+disponible';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
278 |
|
279 |
+
document.getElementById('movie-title').textContent = movie.title;
|
280 |
+
document.getElementById('movie-year').textContent = movie.release_date ? movie.release_date.split('-')[0] : 'N/A';
|
281 |
+
document.getElementById('movie-rating').innerHTML = `<i class="fas fa-star text-yellow-400 mr-1"></i> ${movie.vote_average ? movie.vote_average.toFixed(1) : 'N/A'}`;
|
282 |
+
document.getElementById('movie-overview').textContent = movie.overview || 'Aucune description disponible.';
|
283 |
|
284 |
+
modal.classList.remove('opacity-0', 'pointer-events-none');
|
285 |
+
modal.classList.add('opacity-100');
|
286 |
}
|
287 |
|
288 |
+
// Fermer la modal
|
289 |
+
document.getElementById('close-modal').addEventListener('click', () => {
|
290 |
+
const modal = document.getElementById('player-modal');
|
291 |
+
modal.classList.remove('opacity-100');
|
292 |
+
modal.classList.add('opacity-0', 'pointer-events-none');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
293 |
});
|
294 |
+
|
295 |
+
// Charger les films au démarrage
|
296 |
+
document.addEventListener('DOMContentLoaded', loadMovies);
|
297 |
</script>
|
298 |
<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/cin-stream" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
|
299 |
</html>
|
prompts.txt
CHANGED
@@ -1,4 +1,7 @@
|
|
1 |
creer un générateur de site de films streaming a regarder de suite avec plus de 5025200 boutons cliquable automatiques des film qui s'ouvre dans une nouvel fenetre quand on cique sure chaque bouton je veux des vrais film reel en automatique pas de site d exemple , avec sont propre database de plus de 9726000 film complet directement pret a l'emploi les film je les veux tous en francais , avec des tres belle affiche reel des film et leur affiche d'origine , avec des serveurs de base de donnée avec leur lien d'origine
|
2 |
activer toutes les boutons a regarder maintenant en mode automatique
|
3 |
je veux que le site posséde sont vrais serveur de lient de film a jours
|
4 |
-
je veut un site de films de streaming complet a regarder en francais et pret a l'emploi de suite , avec une grosse base de donnéés en syteme robotisé en automatique avec plussieur seveur des film avec les liens des films origineaux en automatique avec une database de 962000 film tres recents de 2023 a 2025 , ouvert les lecture des films dans une nouvel fenetre
|
|
|
|
|
|
|
|
1 |
creer un générateur de site de films streaming a regarder de suite avec plus de 5025200 boutons cliquable automatiques des film qui s'ouvre dans une nouvel fenetre quand on cique sure chaque bouton je veux des vrais film reel en automatique pas de site d exemple , avec sont propre database de plus de 9726000 film complet directement pret a l'emploi les film je les veux tous en francais , avec des tres belle affiche reel des film et leur affiche d'origine , avec des serveurs de base de donnée avec leur lien d'origine
|
2 |
activer toutes les boutons a regarder maintenant en mode automatique
|
3 |
je veux que le site posséde sont vrais serveur de lient de film a jours
|
4 |
+
je veut un site de films de streaming complet a regarder en francais et pret a l'emploi de suite , avec une grosse base de donnéés en syteme robotisé en automatique avec plussieur seveur des film avec les liens des films origineaux en automatique avec une database de 962000 film tres recents de 2023 a 2025 , ouvert les lecture des films dans une nouvel fenetre
|
5 |
+
je veux pas de demonstration je veux regarder des vrai fiolm complet en francais avec une database de 598888 film nouveautéé
|
6 |
+
je veux pas d'exemple de film je veux des vrai site a regarder en automatique télécharger 969696996 film en francais a regarder en automatique avec les vrais image des affiches des film reel
|
7 |
+
activer les lecture des film en automatique dans une nouvel fenetre
|