docto41 commited on
Commit
bbcacec
·
verified ·
1 Parent(s): 472efb7

Add 2 files

Browse files
Files changed (2) hide show
  1. index.html +865 -402
  2. prompts.txt +8 -1
index.html CHANGED
@@ -3,459 +3,922 @@
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>CodeMaster - Correcteur de Code Puissant</title>
7
  <script src="https://cdn.tailwindcss.com"></script>
8
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/atom-one-dark.min.css">
9
- <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js"></script>
10
- <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/languages/javascript.min.js"></script>
11
- <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/languages/css.min.js"></script>
12
- <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/languages/xml.min.js"></script>
13
  <style>
14
- .editor-container {
15
- position: relative;
16
- height: 500px;
17
  }
18
- .editor {
19
- position: absolute;
20
- top: 0;
21
- right: 0;
22
- bottom: 0;
23
- left: 0;
24
- font-family: 'Fira Code', monospace;
25
- font-size: 14px;
26
- line-height: 1.5;
27
- tab-size: 2;
28
  }
29
- .error-marker {
30
- position: absolute;
31
- background-color: rgba(255, 0, 0, 0.2);
 
 
 
 
32
  }
33
- .warning-marker {
34
- position: absolute;
35
- background-color: rgba(255, 165, 0, 0.2);
 
36
  }
37
- .suggestion-marker {
38
- position: absolute;
39
- background-color: rgba(100, 149, 237, 0.2);
40
  }
41
- .hljs {
42
- background: transparent !important;
43
  }
44
- .custom-scrollbar::-webkit-scrollbar {
45
- width: 8px;
46
- height: 8px;
47
  }
48
- .custom-scrollbar::-webkit-scrollbar-track {
49
- background: #2d3748;
50
  }
51
- .custom-scrollbar::-webkit-scrollbar-thumb {
52
- background: #4a5568;
53
- border-radius: 4px;
 
 
54
  }
55
- .custom-scrollbar::-webkit-scrollbar-thumb:hover {
56
- background: #718096;
 
 
 
57
  }
58
  </style>
59
  </head>
60
- <body class="bg-gray-900 text-gray-100 min-h-screen">
61
- <div class="container mx-auto px-4 py-8">
62
- <header class="mb-8">
63
- <div class="flex items-center justify-between">
64
- <div class="flex items-center space-x-4">
65
- <div class="w-10 h-10 bg-indigo-600 rounded-lg flex items-center justify-center">
66
- <svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6 text-white" fill="none" viewBox="0 0 24 24" stroke="currentColor">
67
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4" />
68
- </svg>
69
- </div>
70
- <h1 class="text-3xl font-bold bg-gradient-to-r from-indigo-400 to-purple-600 bg-clip-text text-transparent">CodeMaster</h1>
71
  </div>
72
- <div class="flex items-center space-x-4">
73
- <button id="run-btn" class="px-4 py-2 bg-green-600 hover:bg-green-700 rounded-lg font-medium flex items-center space-x-2 transition-colors">
74
- <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" viewBox="0 0 20 20" fill="currentColor">
75
- <path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM9.555 7.168A1 1 0 008 8v4a1 1 0 001.555.832l3-2a1 1 0 000-1.664l-3-2z" clip-rule="evenodd" />
76
- </svg>
77
- <span>Exécuter</span>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
  </button>
79
  </div>
80
  </div>
81
- <p class="mt-2 text-gray-400">Correcteur de code intelligent avec analyse en temps réel</p>
82
- </header>
83
-
84
- <div class="grid grid-cols-1 lg:grid-cols-2 gap-6">
85
- <div class="space-y-6">
86
- <div class="bg-gray-800 rounded-xl overflow-hidden shadow-lg">
87
- <div class="px-4 py-3 bg-gray-700 flex items-center justify-between">
88
- <div class="flex items-center space-x-2">
89
- <div class="w-3 h-3 rounded-full bg-red-500"></div>
90
- <div class="w-3 h-3 rounded-full bg-yellow-500"></div>
91
- <div class="w-3 h-3 rounded-full bg-green-500"></div>
92
- </div>
93
- <div class="flex items-center space-x-4">
94
- <select id="language-select" class="bg-gray-800 text-gray-300 text-sm rounded px-2 py-1 focus:outline-none">
95
- <option value="javascript">JavaScript</option>
96
- <option value="html">HTML</option>
97
- <option value="css">CSS</option>
98
- <option value="python">Python</option>
99
- <option value="php">PHP</option>
100
- </select>
101
  </div>
102
  </div>
103
- <div class="editor-container">
104
- <pre id="editor" class="editor">function example() {
105
- // Votre code ici
106
- let x = 10;
107
- if (x == "10") {
108
- console.log("Égalité faible");
109
- }
110
-
111
- const unusedVar = "Je ne suis pas utilisé";
112
-
113
- return x * 2;
114
- }</pre>
115
- </div>
116
  </div>
 
 
 
117
 
118
- <div class="bg-gray-800 rounded-xl overflow-hidden shadow-lg">
119
- <div class="px-4 py-3 bg-gray-700">
120
- <h3 class="font-medium">Analyse du code</h3>
121
- </div>
122
- <div id="analysis-results" class="p-4 max-h-64 overflow-y-auto custom-scrollbar">
123
- <div class="text-gray-400 italic">Le code sera analysé automatiquement...</div>
124
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
125
  </div>
126
  </div>
 
 
127
 
128
- <div class="bg-gray-800 rounded-xl overflow-hidden shadow-lg">
129
- <div class="px-4 py-3 bg-gray-700 flex items-center justify-between">
130
- <h3 class="font-medium">Résultat / Sortie</h3>
131
- <div class="flex items-center space-x-2">
132
- <button id="clear-output" class="text-gray-400 hover:text-white transition-colors">
133
- <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" viewBox="0 0 20 20" fill="currentColor">
134
- <path fill-rule="evenodd" d="M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z" clip-rule="evenodd" />
135
- </svg>
136
- </button>
137
- </div>
 
 
138
  </div>
139
- <div id="output" class="p-4 h-full min-h-96 overflow-y-auto custom-scrollbar">
140
- <div class="text-gray-400 italic">La sortie s'affichera ici...</div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
141
  </div>
142
  </div>
143
  </div>
 
144
 
145
- <div class="mt-8 bg-gray-800 rounded-xl overflow-hidden shadow-lg">
146
- <div class="px-4 py-3 bg-gray-700">
147
- <h3 class="font-medium">Suggestions d'amélioration</h3>
 
 
 
 
 
 
 
 
 
 
148
  </div>
149
- <div id="suggestions" class="p-4">
150
- <div class="text-gray-400 italic">Les suggestions apparaîtront après l'analyse...</div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
151
  </div>
152
  </div>
153
- </div>
154
 
155
- <script>
156
- document.addEventListener('DOMContentLoaded', function() {
157
- // Initialisation de Highlight.js
158
- hljs.highlightAll();
159
-
160
- const editor = document.getElementById('editor');
161
- const languageSelect = document.getElementById('language-select');
162
- const runBtn = document.getElementById('run-btn');
163
- const clearOutput = document.getElementById('clear-output');
164
- const output = document.getElementById('output');
165
- const analysisResults = document.getElementById('analysis-results');
166
- const suggestions = document.getElementById('suggestions');
167
 
168
- let markers = [];
169
-
170
- // Détection automatique des erreurs
171
- editor.addEventListener('input', debounce(analyzeCode, 500));
172
-
173
- // Changement de langage
174
- languageSelect.addEventListener('change', function() {
175
- analyzeCode();
176
- });
177
-
178
- // Exécution du code
179
- runBtn.addEventListener('click', executeCode);
180
-
181
- // Effacer la sortie
182
- clearOutput.addEventListener('click', function() {
183
- output.innerHTML = '<div class="text-gray-400 italic">La sortie s\'affichera ici...</div>';
184
- });
185
-
186
- // Analyse du code
187
- function analyzeCode() {
188
- // Effacer les marqueurs précédents
189
- clearMarkers();
190
 
191
- const code = editor.textContent;
192
- const language = languageSelect.value;
193
- let errors = [];
194
- let warnings = [];
195
- let suggestionsList = [];
196
 
197
- // Analyse basique (simulée)
198
- if (language === 'javascript') {
199
- // Détection d'égalité faible
200
- const weakEqualRegex = /==/g;
201
- let match;
202
- while ((match = weakEqualRegex.exec(code)) !== null) {
203
- warnings.push({
204
- message: "Utilisation d'égalité faible (==). Préférez l'égalité stricte (===).",
205
- line: getLineNumber(code, match.index),
206
- column: match.index - getLineStartIndex(code, getLineNumber(code, match.index)) + 1,
207
- index: match.index,
208
- length: match[0].length
209
- });
210
- }
211
-
212
- // Détection de variables non utilisées
213
- const unusedVarRegex = /(const|let|var)\s+([a-zA-Z_$][0-9a-zA-Z_$]*)(?![^(]*\))(?!\s*=[^=])[^;]*?(?=;|$)/g;
214
- while ((match = unusedVarRegex.exec(code)) !== null) {
215
- const varName = match[2];
216
- const varRegex = new RegExp(`\\b${varName}\\b(?!\\s*=[^=])`, 'g');
217
- const usageCount = (code.match(varRegex) || []).length;
218
-
219
- if (usageCount <= 1) {
220
- warnings.push({
221
- message: `Variable '${varName}' déclarée mais jamais utilisée.`,
222
- line: getLineNumber(code, match.index),
223
- column: match.index - getLineStartIndex(code, getLineNumber(code, match.index)) + 1,
224
- index: match.index,
225
- length: match[0].length
226
- });
227
- }
228
- }
229
-
230
- // Détection de return sans valeur
231
- const emptyReturnRegex = /return\s*;(?!\s*$)/g;
232
- while ((match = emptyReturnRegex.exec(code)) !== null) {
233
- errors.push({
234
- message: "Return sans valeur spécifiée.",
235
- line: getLineNumber(code, match.index),
236
- column: match.index - getLineStartIndex(code, getLineNumber(code, match.index)) + 1,
237
- index: match.index,
238
- length: match[0].length
239
- });
240
- }
241
-
242
- // Suggestions d'amélioration
243
- if (code.includes('console.log')) {
244
- suggestionsList.push({
245
- message: "Pour un meilleur suivi, envisagez d'utiliser des librairies de logging comme Winston ou Pino en production.",
246
- category: "Best Practice"
247
- });
248
- }
249
-
250
- if (code.includes('function') && !code.includes('arrow function')) {
251
- suggestionsList.push({
252
- message: "Pour un code plus concis, envisagez d'utiliser les fonctions fléchées (=>) lorsque c'est approprié.",
253
- category: "Modern Syntax"
254
- });
255
- }
256
- }
257
 
258
- // Mise à jour de l'interface
259
- updateMarkers([...errors, ...warnings]);
260
- updateAnalysisResults(errors, warnings);
261
- updateSuggestions(suggestionsList);
262
 
263
- // Re-highlight le code
264
- hljs.highlightElement(editor);
265
- }
266
-
267
- // Exécution du code
268
- function executeCode() {
269
- const code = editor.textContent;
270
- const language = languageSelect.value;
271
 
272
- output.innerHTML = '';
 
 
 
273
 
274
- try {
275
- if (language === 'javascript') {
276
- // Crée un contexte sécurisé pour l'exécution
277
- const originalConsoleLog = console.log;
278
- let logs = [];
279
-
280
- console.log = function() {
281
- logs.push(Array.from(arguments).join(' '));
282
- originalConsoleLog.apply(console, arguments);
283
- };
284
-
285
- // Exécute le code dans un contexte sécurisé
286
- const result = new Function(code)();
287
-
288
- // Restaure la console originale
289
- console.log = originalConsoleLog;
290
-
291
- // Affiche les logs
292
- if (logs.length > 0) {
293
- const logsDiv = document.createElement('div');
294
- logsDiv.className = 'mb-4';
295
- logsDiv.innerHTML = `<div class="text-gray-400 mb-1">Sortie console:</div>
296
- <div class="bg-gray-700 p-3 rounded-lg font-mono text-sm">${logs.join('<br>')}</div>`;
297
- output.appendChild(logsDiv);
298
- }
299
-
300
- // Affiche le résultat
301
- if (result !== undefined) {
302
- const resultDiv = document.createElement('div');
303
- resultDiv.className = 'mb-4';
304
- resultDiv.innerHTML = `<div class="text-gray-400 mb-1">Résultat retourné:</div>
305
- <div class="bg-gray-700 p-3 rounded-lg font-mono text-sm">${JSON.stringify(result)}</div>`;
306
- output.appendChild(resultDiv);
307
- }
308
- } else {
309
- output.innerHTML = '<div class="text-yellow-400">L\'exécution directe n\'est disponible que pour JavaScript.</div>';
310
- }
311
- } catch (error) {
312
- output.innerHTML = `<div class="text-red-400 font-mono">Erreur d'exécution: ${error.message}</div>`;
313
- }
314
- }
315
-
316
- // Fonctions utilitaires
317
- function getLineNumber(text, index) {
318
- return text.substring(0, index).split('\n').length;
319
- }
320
-
321
- function getLineStartIndex(text, lineNumber) {
322
- const lines = text.split('\n');
323
- if (lineNumber < 1 || lineNumber > lines.length) return 0;
324
 
325
- let index = 0;
326
- for (let i = 0; i < lineNumber - 1; i++) {
327
- index += lines[i].length + 1; // +1 pour le saut de ligne
328
- }
329
- return index;
330
- }
331
-
332
- function updateMarkers(issues) {
333
- clearMarkers();
334
 
335
- const editorRect = editor.getBoundingClientRect();
336
- const lineHeight = parseInt(getComputedStyle(editor).lineHeight);
337
- const charWidth = 8; // Approximation de la largeur d'un caractère
 
338
 
339
- issues.forEach(issue => {
340
- const lineNumber = issue.line;
341
- const column = issue.column;
342
-
343
- // Crée un marqueur visuel
344
- const marker = document.createElement('div');
345
- marker.className = issue.message.includes('Utilisation') || issue.message.includes('Variable') ?
346
- 'warning-marker' : 'error-marker';
347
-
348
- // Positionne le marqueur
349
- const top = (lineNumber - 1) * lineHeight;
350
- const left = (column - 1) * charWidth;
351
-
352
- marker.style.top = `${top}px`;
353
- marker.style.left = `${left}px`;
354
- marker.style.width = `${issue.length * charWidth}px`;
355
- marker.style.height = `${lineHeight}px`;
356
-
357
- // Ajoute un tooltip
358
- marker.title = issue.message;
359
-
360
- // Ajoute le marqueur à l'éditeur
361
- editor.parentNode.appendChild(marker);
362
- markers.push(marker);
363
- });
364
- }
365
 
366
- function clearMarkers() {
367
- markers.forEach(marker => marker.remove());
368
- markers = [];
369
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
370
 
371
- function updateAnalysisResults(errors, warnings) {
372
- if (errors.length === 0 && warnings.length === 0) {
373
- analysisResults.innerHTML = '<div class="text-green-400">Aucun problème détecté. Code propre!</div>';
374
- return;
375
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
376
 
377
- let html = '';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
378
 
379
- if (errors.length > 0) {
380
- html += '<div class="mb-4">';
381
- html += '<div class="text-red-400 font-medium mb-2">Erreurs:</div>';
382
- html += '<ul class="space-y-2">';
383
- errors.forEach(error => {
384
- html += `<li class="flex items-start">
385
- <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-red-500 mt-0.5 mr-2 flex-shrink-0" viewBox="0 0 20 20" fill="currentColor">
386
- <path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clip-rule="evenodd" />
387
- </svg>
388
- <div>
389
- <span class="font-mono">Ligne ${error.line}:${error.column}</span> - ${error.message}
390
- </div>
391
- </li>`;
392
- });
393
- html += '</ul>';
394
- html += '</div>';
395
- }
396
 
397
- if (warnings.length > 0) {
398
- html += '<div>';
399
- html += '<div class="text-yellow-400 font-medium mb-2">Avertissements:</div>';
400
- html += '<ul class="space-y-2">';
401
- warnings.forEach(warning => {
402
- html += `<li class="flex items-start">
403
- <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-yellow-500 mt-0.5 mr-2 flex-shrink-0" viewBox="0 0 20 20" fill="currentColor">
404
- <path fill-rule="evenodd" d="M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z" clip-rule="evenodd" />
405
- </svg>
406
- <div>
407
- <span class="font-mono">Ligne ${warning.line}:${warning.column}</span> - ${warning.message}
408
- </div>
409
- </li>`;
410
- });
411
- html += '</ul>';
412
- html += '</div>';
413
- }
414
 
415
- analysisResults.innerHTML = html;
416
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
417
 
418
- function updateSuggestions(suggestionsList) {
419
- if (suggestionsList.length === 0) {
420
- suggestions.innerHTML = '<div class="text-gray-400 italic">Aucune suggestion pour le moment. Continuez votre bon travail!</div>';
421
- return;
422
- }
423
-
424
- let html = '<div class="grid grid-cols-1 gap-4">';
425
-
426
- suggestionsList.forEach(suggestion => {
427
- html += `<div class="bg-gray-700 p-4 rounded-lg">
428
- <div class="flex items-start">
429
- <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-blue-400 mt-0.5 mr-2 flex-shrink-0" viewBox="0 0 20 20" fill="currentColor">
430
- <path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z" clip-rule="evenodd" />
431
- </svg>
432
- <div>
433
- <div class="text-blue-400 text-sm font-medium mb-1">${suggestion.category}</div>
434
- <div>${suggestion.message}</div>
435
- </div>
436
- </div>
437
- </div>`;
438
- });
 
 
 
 
 
 
439
 
440
- html += '</div>';
441
- suggestions.innerHTML = html;
442
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
443
 
444
- function debounce(func, wait) {
445
- let timeout;
446
- return function() {
447
- const context = this;
448
- const args = arguments;
449
- clearTimeout(timeout);
450
- timeout = setTimeout(() => {
451
- func.apply(context, args);
452
- }, wait);
453
- };
454
- }
455
 
456
- // Analyse initiale
457
- analyzeCode();
458
- });
459
- </script>
460
- <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/code-master" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
461
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>MegaFlix - 6,524,111 films en streaming automatique</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>
10
+ @keyframes float {
11
+ 0%, 100% { transform: translateY(0); }
12
+ 50% { transform: translateY(-10px); }
13
  }
14
+ .floating {
15
+ animation: float 6s ease-in-out infinite;
 
 
 
 
 
 
 
 
16
  }
17
+ .gradient-text {
18
+ background: linear-gradient(90deg, #ff4d4d, #f9cb28, #42ff75, #4d79ff, #c04dff);
19
+ background-size: 400% 400%;
20
+ -webkit-background-clip: text;
21
+ background-clip: text;
22
+ color: transparent;
23
+ animation: gradient 15s ease infinite;
24
  }
25
+ @keyframes gradient {
26
+ 0% { background-position: 0% 50%; }
27
+ 50% { background-position: 100% 50%; }
28
+ 100% { background-position: 0% 50%; }
29
  }
30
+ .stats-counter {
31
+ font-family: 'Courier New', monospace;
 
32
  }
33
+ .film-card:hover .film-overlay {
34
+ opacity: 1;
35
  }
36
+ .scroll-container {
37
+ scrollbar-width: none;
 
38
  }
39
+ .scroll-container::-webkit-scrollbar {
40
+ display: none;
41
  }
42
+ .ai-grid {
43
+ background-image:
44
+ radial-gradient(circle at 10% 20%, rgba(255, 0, 128, 0.1) 0%, transparent 20%),
45
+ radial-gradient(circle at 90% 30%, rgba(0, 200, 255, 0.1) 0%, transparent 25%),
46
+ radial-gradient(circle at 50% 80%, rgba(162, 0, 255, 0.1) 0%, transparent 30%);
47
  }
48
+ .film-poster {
49
+ transition: transform 0.3s ease;
50
+ }
51
+ .film-card:hover .film-poster {
52
+ transform: scale(1.05);
53
  }
54
  </style>
55
  </head>
56
+ <body class="bg-black text-white min-h-screen">
57
+ <!-- Barre de navigation -->
58
+ <nav class="bg-gray-900/80 backdrop-blur-md fixed w-full z-50 border-b border-gray-800">
59
+ <div class="container mx-auto px-6 py-4 flex justify-between items-center">
60
+ <div class="flex items-center space-x-4">
61
+ <div class="w-12 h-12 bg-gradient-to-r from-red-600 to-purple-600 rounded-lg flex items-center justify-center">
62
+ <i class="fas fa-film text-2xl"></i>
 
 
 
 
63
  </div>
64
+ <h1 class="text-3xl font-bold gradient-text">MegaFlix</h1>
65
+ </div>
66
+ <div class="hidden md:flex items-center space-x-8">
67
+ <a href="#" class="hover:text-red-500 transition">Accueil</a>
68
+ <a href="#films" class="hover:text-red-500 transition">Films</a>
69
+ <a href="#series" class="hover:text-red-500 transition">Séries</a>
70
+ <a href="#categories" class="hover:text-red-500 transition">Catégories</a>
71
+ <a href="#nouveautes" class="hover:text-red-500 transition">Nouveautés</a>
72
+ </div>
73
+ <div class="flex items-center space-x-4">
74
+ <button class="px-4 py-2 bg-gradient-to-r from-red-600 to-purple-600 rounded-full font-medium hover:opacity-90 transition" onclick="openIADashboard()">
75
+ <i class="fas fa-robot mr-2"></i> IA Dashboard
76
+ </button>
77
+ <button class="w-10 h-10 rounded-full bg-gray-800 flex items-center justify-center hover:bg-gray-700 transition" onclick="openLogin()">
78
+ <i class="fas fa-user"></i>
79
+ </button>
80
+ </div>
81
+ </div>
82
+ </nav>
83
+
84
+ <!-- Hero Section -->
85
+ <section class="pt-32 pb-20 px-6 ai-grid">
86
+ <div class="container mx-auto flex flex-col md:flex-row items-center">
87
+ <div class="md:w-1/2 mb-12 md:mb-0">
88
+ <h2 class="text-5xl md:text-6xl font-bold mb-6 leading-tight">
89
+ <span class="gradient-text">6,524,111 films</span> <br>
90
+ gérés par <span class="text-red-500">142,521 IA</span>
91
+ </h2>
92
+ <p class="text-xl text-gray-400 mb-8">
93
+ Le plus grand système de streaming automatisé au monde. Découvrez des films en français 24h/24 grâce à notre armée d'intelligences artificielles.
94
+ </p>
95
+ <div class="flex flex-wrap gap-4">
96
+ <button class="px-8 py-4 bg-gradient-to-r from-red-600 to-purple-600 rounded-full font-bold text-lg hover:opacity-90 transition flex items-center" onclick="openRandomMovie()">
97
+ <i class="fas fa-play mr-3"></i> Regarder maintenant
98
+ </button>
99
+ <button class="px-8 py-4 bg-gray-800 rounded-full font-bold text-lg hover:bg-gray-700 transition flex items-center" onclick="scrollToFilms()">
100
+ <i class="fas fa-info-circle mr-3"></i> En savoir plus
101
  </button>
102
  </div>
103
  </div>
104
+ <div class="md:w-1/2 relative floating">
105
+ <div class="relative">
106
+ <div class="absolute -inset-4 bg-gradient-to-r from-red-600 to-purple-600 rounded-3xl blur-lg opacity-30"></div>
107
+ <div class="relative bg-gray-900 rounded-2xl overflow-hidden border border-gray-800">
108
+ <img src="https://image.tmdb.org/t/p/original/8Vt6mWEReuy4Of61Lnj5Xj704m8.jpg"
109
+ alt="Système IA MegaFlix" class="w-full h-auto">
110
+ <div class="absolute inset-0 bg-gradient-to-t from-black/90 via-black/50 to-transparent flex items-end p-6">
111
+ <div>
112
+ <div class="text-sm text-gray-400 mb-2">Recommandé par l'IA</div>
113
+ <h3 class="text-2xl font-bold mb-2">Dune: Partie 2</h3>
114
+ <div class="flex items-center space-x-4 text-sm">
115
+ <span class="text-green-500">97% Match IA</span>
116
+ <span>2024</span>
117
+ <span>2h46m</span>
118
+ </div>
119
+ <button class="mt-4 px-6 py-2 bg-red-600 rounded-lg font-medium hover:bg-red-700 transition" onclick="openMoviePlayer('Dune: Partie 2', 'https://www.youtube.com/embed/WarMeLeeswQ')">
120
+ <i class="fas fa-play mr-2"></i> Regarder
121
+ </button>
122
+ </div>
 
123
  </div>
124
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
125
  </div>
126
+ </div>
127
+ </div>
128
+ </section>
129
 
130
+ <!-- Statistiques en direct -->
131
+ <section class="py-12 bg-gradient-to-b from-gray-900/50 to-black">
132
+ <div class="container mx-auto px-6">
133
+ <div class="grid grid-cols-2 md:grid-cols-4 gap-8 text-center">
134
+ <div class="bg-gray-900/50 rounded-xl p-6 border border-gray-800">
135
+ <div class="text-4xl md:text-5xl font-bold text-red-500 stats-counter" data-count="6524111">6,524,111</div>
136
+ <div class="text-gray-400 mt-2">Films disponibles</div>
137
+ </div>
138
+ <div class="bg-gray-900/50 rounded-xl p-6 border border-gray-800">
139
+ <div class="text-4xl md:text-5xl font-bold text-purple-500 stats-counter" data-count="142521">142,521</div>
140
+ <div class="text-gray-400 mt-2">IA actives</div>
141
+ </div>
142
+ <div class="bg-gray-900/50 rounded-xl p-6 border border-gray-800">
143
+ <div class="text-4xl md:text-5xl font-bold text-blue-500 stats-counter" data-count="12784">12,784</div>
144
+ <div class="text-gray-400 mt-2">Nouveaux films/jour</div>
145
+ </div>
146
+ <div class="bg-gray-900/50 rounded-xl p-6 border border-gray-800">
147
+ <div class="text-4xl md:text-5xl font-bold text-green-500 stats-counter" data-count="99">99.9</div>
148
+ <div class="text-gray-400 mt-2">% Disponibilité</div>
149
  </div>
150
  </div>
151
+ </div>
152
+ </section>
153
 
154
+ <!-- Films recommandés -->
155
+ <section id="films" class="py-16 px-6 bg-gradient-to-b from-black to-gray-900/50">
156
+ <div class="container mx-auto">
157
+ <div class="flex justify-between items-center mb-10">
158
+ <h2 class="text-3xl font-bold">Films Populaires</h2>
159
+ <div class="flex space-x-4">
160
+ <button class="w-12 h-12 rounded-full bg-gray-800 flex items-center justify-center hover:bg-gray-700 transition" onclick="scrollFilmsLeft('popular')">
161
+ <i class="fas fa-chevron-left"></i>
162
+ </button>
163
+ <button class="w-12 h-12 rounded-full bg-gray-800 flex items-center justify-center hover:bg-gray-700 transition" onclick="scrollFilmsRight('popular')">
164
+ <i class="fas fa-chevron-right"></i>
165
+ </button>
166
  </div>
167
+ </div>
168
+
169
+ <div class="relative">
170
+ <div id="popular-films" class="scroll-container overflow-x-auto pb-6 -mx-2">
171
+ <div class="flex space-x-6 px-2" style="width: max-content;">
172
+ <!-- Film 1 -->
173
+ <div class="flex-shrink-0 w-64 film-card">
174
+ <div class="relative rounded-xl overflow-hidden">
175
+ <img src="https://image.tmdb.org/t/p/w500/1pdfLvkbY9ohJlCjQH2CZjjYVvJ.jpg"
176
+ alt="Oppenheimer" class="w-full h-80 object-cover film-poster">
177
+ <div class="absolute inset-0 bg-gradient-to-t from-black/90 via-black/40 to-transparent film-overlay opacity-0 transition flex flex-col justify-end p-4">
178
+ <h3 class="text-xl font-bold mb-1">Oppenheimer</h3>
179
+ <div class="flex items-center space-x-4 text-sm mb-3">
180
+ <span class="text-green-500">95% Match</span>
181
+ <span>2023</span>
182
+ <span>3h00m</span>
183
+ </div>
184
+ <p class="text-sm text-gray-300 line-clamp-2">L'histoire du physicien J. Robert Oppenheimer et son rôle dans le développement de la bombe atomique.</p>
185
+ <button class="mt-4 w-full py-2 bg-red-600 rounded-lg font-medium hover:bg-red-700 transition" onclick="openMoviePlayer('Oppenheimer', 'https://www.youtube.com/embed/uYPbbksJxIg')">
186
+ <i class="fas fa-play mr-2"></i> Regarder
187
+ </button>
188
+ </div>
189
+ </div>
190
+ </div>
191
+
192
+ <!-- Film 2 -->
193
+ <div class="flex-shrink-0 w-64 film-card">
194
+ <div class="relative rounded-xl overflow-hidden">
195
+ <img src="https://image.tmdb.org/t/p/w500/8Vt6mWEReuy4Of61Lnj5Xj704m8.jpg"
196
+ alt="Dune: Partie 2" class="w-full h-80 object-cover film-poster">
197
+ <div class="absolute inset-0 bg-gradient-to-t from-black/90 via-black/40 to-transparent film-overlay opacity-0 transition flex flex-col justify-end p-4">
198
+ <h3 class="text-xl font-bold mb-1">Dune: Partie 2</h3>
199
+ <div class="flex items-center space-x-4 text-sm mb-3">
200
+ <span class="text-green-500">97% Match</span>
201
+ <span>2024</span>
202
+ <span>2h46m</span>
203
+ </div>
204
+ <p class="text-sm text-gray-300 line-clamp-2">Paul Atreides s'unit avec les Fremen pour se venger des conspirateurs qui ont détruit sa famille.</p>
205
+ <button class="mt-4 w-full py-2 bg-red-600 rounded-lg font-medium hover:bg-red-700 transition" onclick="openMoviePlayer('Dune: Partie 2', 'https://www.youtube.com/embed/WarMeLeeswQ')">
206
+ <i class="fas fa-play mr-2"></i> Regarder
207
+ </button>
208
+ </div>
209
+ </div>
210
+ </div>
211
+
212
+ <!-- Film 3 -->
213
+ <div class="flex-shrink-0 w-64 film-card">
214
+ <div class="relative rounded-xl overflow-hidden">
215
+ <img src="https://image.tmdb.org/t/p/w500/kDp1vUBnMpe8ak4rjgl3cLELqjU.jpg"
216
+ alt="The Batman" class="w-full h-80 object-cover film-poster">
217
+ <div class="absolute inset-0 bg-gradient-to-t from-black/90 via-black/40 to-transparent film-overlay opacity-0 transition flex flex-col justify-end p-4">
218
+ <h3 class="text-xl font-bold mb-1">The Batman</h3>
219
+ <div class="flex items-center space-x-4 text-sm mb-3">
220
+ <span class="text-green-500">93% Match</span>
221
+ <span>2022</span>
222
+ <span>2h56m</span>
223
+ </div>
224
+ <p class="text-sm text-gray-300 line-clamp-2">Batman enquête sur la corruption à Gotham et affronte le Riddler, un tueur en série ciblant l'élite.</p>
225
+ <button class="mt-4 w-full py-2 bg-red-600 rounded-lg font-medium hover:bg-red-700 transition" onclick="openMoviePlayer('The Batman', 'https://www.youtube.com/embed/mqqft2x_Aa4')">
226
+ <i class="fas fa-play mr-2"></i> Regarder
227
+ </button>
228
+ </div>
229
+ </div>
230
+ </div>
231
+
232
+ <!-- Film 4 -->
233
+ <div class="flex-shrink-0 w-64 film-card">
234
+ <div class="relative rounded-xl overflow-hidden">
235
+ <img src="https://image.tmdb.org/t/p/w500/8Gxv8gSFCU0XGDNyEG9ZIQW3dCw.jpg"
236
+ alt="Avatar 2" class="w-full h-80 object-cover film-poster">
237
+ <div class="absolute inset-0 bg-gradient-to-t from-black/90 via-black/40 to-transparent film-overlay opacity-0 transition flex flex-col justify-end p-4">
238
+ <h3 class="text-xl font-bold mb-1">Avatar 2</h3>
239
+ <div class="flex items-center space-x-4 text-sm mb-3">
240
+ <span class="text-green-500">91% Match</span>
241
+ <span>2022</span>
242
+ <span>3h12m</span>
243
+ </div>
244
+ <p class="text-sm text-gray-300 line-clamp-2">Jake Sully et Ney'tiri forment une famille et font tout pour rester ensemble face à une nouvelle menace.</p>
245
+ <button class="mt-4 w-full py-2 bg-red-600 rounded-lg font-medium hover:bg-red-700 transition" onclick="openMoviePlayer('Avatar 2', 'https://www.youtube.com/embed/d9MyW72ELq0')">
246
+ <i class="fas fa-play mr-2"></i> Regarder
247
+ </button>
248
+ </div>
249
+ </div>
250
+ </div>
251
+
252
+ <!-- Film 5 -->
253
+ <div class="flex-shrink-0 w-64 film-card">
254
+ <div class="relative rounded-xl overflow-hidden">
255
+ <img src="https://image.tmdb.org/t/p/w500/1X7vow16X7CnCi9kOALzgUNW39M.jpg"
256
+ alt="Top Gun: Maverick" class="w-full h-80 object-cover film-poster">
257
+ <div class="absolute inset-0 bg-gradient-to-t from-black/90 via-black/40 to-transparent film-overlay opacity-0 transition flex flex-col justify-end p-4">
258
+ <h3 class="text-xl font-bold mb-1">Top Gun: Maverick</h3>
259
+ <div class="flex items-center space-x-4 text-sm mb-3">
260
+ <span class="text-green-500">96% Match</span>
261
+ <span>2022</span>
262
+ <span>2h11m</span>
263
+ </div>
264
+ <p class="text-sm text-gray-300 line-clamp-2">Maverick affronte son passé tout en formant un groupe de jeunes pilotes pour une mission périlleuse.</p>
265
+ <button class="mt-4 w-full py-2 bg-red-600 rounded-lg font-medium hover:bg-red-700 transition" onclick="openMoviePlayer('Top Gun: Maverick', 'https://www.youtube.com/embed/giXco2jaZ_4')">
266
+ <i class="fas fa-play mr-2"></i> Regarder
267
+ </button>
268
+ </div>
269
+ </div>
270
+ </div>
271
+
272
+ <!-- Film 6 -->
273
+ <div class="flex-shrink-0 w-64 film-card">
274
+ <div class="relative rounded-xl overflow-hidden">
275
+ <img src="https://image.tmdb.org/t/p/w500/9dKCd55IuTT5QRs989m9Qlb7d2B.jpg"
276
+ alt="Interstellar" class="w-full h-80 object-cover film-poster">
277
+ <div class="absolute inset-0 bg-gradient-to-t from-black/90 via-black/40 to-transparent film-overlay opacity-0 transition flex flex-col justify-end p-4">
278
+ <h3 class="text-xl font-bold mb-1">Interstellar</h3>
279
+ <div class="flex items-center space-x-4 text-sm mb-3">
280
+ <span class="text-green-500">94% Match</span>
281
+ <span>2014</span>
282
+ <span>2h49m</span>
283
+ </div>
284
+ <p class="text-sm text-gray-300 line-clamp-2">Une équipe d'explorateurs voyage à travers un trou de ver dans l'espace pour sauver l'humanité.</p>
285
+ <button class="mt-4 w-full py-2 bg-red-600 rounded-lg font-medium hover:bg-red-700 transition" onclick="openMoviePlayer('Interstellar', 'https://www.youtube.com/embed/zSWdZVtXT7E')">
286
+ <i class="fas fa-play mr-2"></i> Regarder
287
+ </button>
288
+ </div>
289
+ </div>
290
+ </div>
291
+
292
+ <!-- Film 7 -->
293
+ <div class="flex-shrink-0 w-64 film-card">
294
+ <div class="relative rounded-xl overflow-hidden">
295
+ <img src="https://image.tmdb.org/t/p/w500/8UlWHLMpgZm9bx6QYh0NFoq67TZ.jpg"
296
+ alt="The Dark Knight" class="w-full h-80 object-cover film-poster">
297
+ <div class="absolute inset-0 bg-gradient-to-t from-black/90 via-black/40 to-transparent film-overlay opacity-0 transition flex flex-col justify-end p-4">
298
+ <h3 class="text-xl font-bold mb-1">The Dark Knight</h3>
299
+ <div class="flex items-center space-x-4 text-sm mb-3">
300
+ <span class="text-green-500">98% Match</span>
301
+ <span>2008</span>
302
+ <span>2h32m</span>
303
+ </div>
304
+ <p class="text-sm text-gray-300 line-clamp-2">Batman, Gordon et Harvey Dent s'unissent contre le chaos orchestré par le Joker à Gotham.</p>
305
+ <button class="mt-4 w-full py-2 bg-red-600 rounded-lg font-medium hover:bg-red-700 transition" onclick="openMoviePlayer('The Dark Knight', 'https://www.youtube.com/embed/EXeTwQWrcwY')">
306
+ <i class="fas fa-play mr-2"></i> Regarder
307
+ </button>
308
+ </div>
309
+ </div>
310
+ </div>
311
+
312
+ <!-- Film 8 -->
313
+ <div class="flex-shrink-0 w-64 film-card">
314
+ <div class="relative rounded-xl overflow-hidden">
315
+ <img src="https://image.tmdb.org/t/p/w500/7WsyChQLEftFiDOVTGkv3hFpyyt.jpg"
316
+ alt="Avengers: Endgame" class="w-full h-80 object-cover film-poster">
317
+ <div class="absolute inset-0 bg-gradient-to-t from-black/90 via-black/40 to-transparent film-overlay opacity-0 transition flex flex-col justify-end p-4">
318
+ <h3 class="text-xl font-bold mb-1">Avengers: Endgame</h3>
319
+ <div class="flex items-center space-x-4 text-sm mb-3">
320
+ <span class="text-green-500">95% Match</span>
321
+ <span>2019</span>
322
+ <span>3h01m</span>
323
+ </div>
324
+ <p class="text-sm text-gray-300 line-clamp-2">Les Avengers tentent de restaurer l'univers après les événements dévastateurs de Infinity War.</p>
325
+ <button class="mt-4 w-full py-2 bg-red-600 rounded-lg font-medium hover:bg-red-700 transition" onclick="openMoviePlayer('Avengers: Endgame', 'https://www.youtube.com/embed/TcMBFSGVi1c')">
326
+ <i class="fas fa-play mr-2"></i> Regarder
327
+ </button>
328
+ </div>
329
+ </div>
330
+ </div>
331
+ </div>
332
  </div>
333
  </div>
334
  </div>
335
+ </section>
336
 
337
+ <!-- Nouveautés -->
338
+ <section id="nouveautes" class="py-16 px-6 bg-black">
339
+ <div class="container mx-auto">
340
+ <div class="flex justify-between items-center mb-10">
341
+ <h2 class="text-3xl font-bold">Nouveautés</h2>
342
+ <div class="flex space-x-4">
343
+ <button class="w-12 h-12 rounded-full bg-gray-800 flex items-center justify-center hover:bg-gray-700 transition" onclick="scrollFilmsLeft('new')">
344
+ <i class="fas fa-chevron-left"></i>
345
+ </button>
346
+ <button class="w-12 h-12 rounded-full bg-gray-800 flex items-center justify-center hover:bg-gray-700 transition" onclick="scrollFilmsRight('new')">
347
+ <i class="fas fa-chevron-right"></i>
348
+ </button>
349
+ </div>
350
  </div>
351
+
352
+ <div class="relative">
353
+ <div id="new-films" class="scroll-container overflow-x-auto pb-6 -mx-2">
354
+ <div class="flex space-x-6 px-2" style="width: max-content;">
355
+ <!-- Film 1 -->
356
+ <div class="flex-shrink-0 w-64 film-card">
357
+ <div class="relative rounded-xl overflow-hidden">
358
+ <img src="https://image.tmdb.org/t/p/w500/1XDDXPXGiI8id7MrUxK36ke7gkX.jpg"
359
+ alt="Furiosa" class="w-full h-80 object-cover film-poster">
360
+ <div class="absolute inset-0 bg-gradient-to-t from-black/90 via-black/40 to-transparent film-overlay opacity-0 transition flex flexocol justify-end p-4">
361
+ <h3 class="text-xl font-bold mb-1">Furiosa</h3>
362
+ <div class="flex items-center space-x-4 text-sm mb-3">
363
+ <span class="text-green-500">92% Match</span>
364
+ <span>2024</span>
365
+ <span>2h28m</span>
366
+ </div>
367
+ <p class="text-sm text-gray-300 line-clamp-2">L'histoire de la jeune Furiosa avant sa rencontre avec Max dans Fury Road.</p>
368
+ <button class="mt-4 w-full py-2 bg-red-600 rounded-lg font-medium hover:bg-red-700 transition" onclick="openMoviePlayer('Furiosa', 'https://www.youtube.com/embed/XJMuhwVlca4')">
369
+ <i class="fas fa-play mr-2"></i> Regarder
370
+ </button>
371
+ </div>
372
+ </div>
373
+ </div>
374
+
375
+ <!-- Film 2 -->
376
+ <div class="flex-shrink-0 w-64 film-card">
377
+ <div class="relative rounded-xl overflow-hidden">
378
+ <img src="https://image.tmdb.org/t/p/w500/4MCKNAc6AbWjEsM2h9Xc29owo4z.jpg"
379
+ alt="Deadpool & Wolverine" class="w-full h-80 object-cover film-poster">
380
+ <div class="absolute inset-0 bg-gradient-to-t from-black/90 via-black/40 to-transparent film-overlay opacity-0 transition flex flex-col justify-end p-4">
381
+ <h3 class="text-xl font-bold mb-1">Deadpool & Wolverine</h3>
382
+ <div class="flex items-center space-x-4 text-sm mb-3">
383
+ <span class="text-green-500">96% Match</span>
384
+ <span>2024</span>
385
+ <span>2h07m</span>
386
+ </div>
387
+ <p class="text-sm text-gray-300 line-clamp-2">Deadpool rejoint les Marvel Studios avec Wolverine dans un voyage qui changera l'histoire du MCU.</p>
388
+ <button class="mt-4 w-full py-2 bg-red-600 rounded-lg font-medium hover:bg-red-700 transition" onclick="openMoviePlayer('Deadpool & Wolverine', 'https://www.youtube.com/embed/avb5TqS4KdA')">
389
+ <i class="fas fa-play mr-2"></i> Regarder
390
+ </button>
391
+ </div>
392
+ </div>
393
+ </div>
394
+
395
+ <!-- Film 3 -->
396
+ <div class="flex-shrink-0 w-64 film-card">
397
+ <div class="relative rounded-xl overflow-hidden">
398
+ <img src="https://image.tmdb.org/t/p/w500/5cCfqeUH2f5Gnu7Lh2xspY5dHGV.jpg"
399
+ alt="Kingdom of the Planet of the Apes" class="w-full h-80 object-cover film-poster">
400
+ <div class="absolute inset-0 bg-gradient-to-t from-black/90 via-black/40 to-transparent film-overlay opacity-0 transition flex flex-col justify-end p-4">
401
+ <h3 class="text-xl font-bold mb-1">Le Planète des Singes : Le Nouveau Royaume</h3>
402
+ <div class="flex items-center space-x-4 text-sm mb-3">
403
+ <span class="text-green-500">90% Match</span>
404
+ <span>2024</span>
405
+ <span>2h25m</span>
406
+ </div>
407
+ <p class="text-sm text-gray-300 line-clamp-2">Des générations après le règne de César, un jeune singe entreprend un voyage qui le mènera à remettre en question tout ce qu'il sait sur le passé.</p>
408
+ <button class="mt-4 w-full py-2 bg-red-600 rounded-lg font-medium hover:bg-red-700 transition" onclick="openMoviePlayer('Le Planète des Singes : Le Nouveau Royaume', 'https://www.youtube.com/embed/3FGHB2qT0Xk')">
409
+ <i class="fas fa-play mr-2"></i> Regarder
410
+ </button>
411
+ </div>
412
+ </div>
413
+ </div>
414
+
415
+ <!-- Film 4 -->
416
+ <div class="flex-shrink-0 w-64 film-card">
417
+ <div class="relative rounded-xl overflow-hidden">
418
+ <img src="https://image.tmdb.org/t/p/w500/4LrL40XecjGLRpX5I2gzMTUt04l.jpg"
419
+ alt="Godzilla x Kong: The New Empire" class="w-full h-80 object-cover film-poster">
420
+ <div class="absolute inset-0 bg-gradient-to-t from-black/90 via-black/40 to-transparent film-overlay opacity-0 transition flex flex-col justify-end p-4">
421
+ <h3 class="text-xl font-bold mb-1">Godzilla x Kong: The New Empire</h3>
422
+ <div class="flex items-center space-x-4 text-sm mb-3">
423
+ <span class="text-green-500">88% Match</span>
424
+ <span>2024</span>
425
+ <span>1h55m</span>
426
+ </div>
427
+ <p class="text-sm text-gray-300 line-clamp-2">Godzilla et Kong s'unissent contre une menace colossale enfouie dans notre monde, mettant en péril leur existence et la nôtre.</p>
428
+ <button class="mt-4 w-full py-2 bg-red-600 rounded-lg font-medium hover:bg-red-700 transition" onclick="openMoviePlayer('Godzilla x Kong: The New Empire', 'https://www.youtube.com/embed/lV1OOlGwExM')">
429
+ <i class="fas fa-play mr-2"></i> Regarder
430
+ </button>
431
+ </div>
432
+ </div>
433
+ </div>
434
+
435
+ <!-- Film 5 -->
436
+ <div class="flex-shrink-0 w-64 film-card">
437
+ <div class="relative rounded-xl overflow-hidden">
438
+ <img src="https://image.tmdb.org/t/p/w500/1NpIg06HIA3bGHVQCBnOFh8VGOq.jpg"
439
+ alt="The Fall Guy" class="w-full h-80 object-cover film-poster">
440
+ <div class="absolute inset-0 bg-gradient-to-t from-black/90 via-black/40 to-transparent film-overlay opacity-0 transition flex flex-col justify-end p-4">
441
+ <h3 class="text-xl font-bold mb-1">The Fall Guy</h3>
442
+ <div class="flex items-center space-x-4 text-sm mb-3">
443
+ <span class="text-green-500">89% Match</span>
444
+ <span>2024</span>
445
+ <span>2h06m</span>
446
+ </div>
447
+ <p class="text-sm text-gray-300 line-clamp-2">Un cascadeur retourne au travail pour retrouver une star disparue, résoudre un complot et reconquérir son ex.</p>
448
+ <button class="mt-4 w-full py-2 bg-red-600 rounded-lg font-medium hover:bg-red-700 transition" onclick="openMoviePlayer('The Fall Guy', 'https://www.youtube.com/embed/5z2FTTBlDLU')">
449
+ <i class="fas fa-play mr-2"></i> Regarder
450
+ </button>
451
+ </div>
452
+ </div>
453
+ </div>
454
+
455
+ <!-- Film 6 -->
456
+ <div class="flex-shrink-0 w-64 film-card">
457
+ <div class="relative rounded-xl overflow-hidden">
458
+ <img src="https://image.tmdb.org/t/p/w500/1X4h40fcB4WWUmIBK0auT4zRBAV.jpg"
459
+ alt="Civil War" class="w-full h-80 object-cover film-poster">
460
+ <div class="absolute inset-0 bg-gradient-to-t from-black/90 via-black/40 to-transparent film-overlay opacity-0 transition flex flex-col justify-end p-4">
461
+ <h3 class="text-xl font-bold mb-1">Civil War</h3>
462
+ <div class="flex items-center space-x-4 text-sm mb-3">
463
+ <span class="text-green-500">93% Match</span>
464
+ <span>2024</span>
465
+ <span>1h49m</span>
466
+ </div>
467
+ <p class="text-sm text-gray-300 line-clamp-2">Un groupe de journalistes voyage à travers une Amérique déchirée par la guerre alors que le gouvernement attaque ses propres citoyens.</p>
468
+ <button class="mt-4 w-full py-2 bg-red-600 rounded-lg font-medium hover:bg-red-700 transition" onclick="openMoviePlayer('Civil War', 'https://www.youtube.com/embed/aDyQxtg0V2w')">
469
+ <i class="fas fa-play mr-2"></i> Regarder
470
+ </button>
471
+ </div>
472
+ </div>
473
+ </div>
474
+
475
+ <!-- Film 7 -->
476
+ <div class="flex-shrink-0 w-64 film-card">
477
+ <div class="relative rounded-xl overflow-hidden">
478
+ <img src="https://image.tmdb.org/t/p/w500/2KGxQFV9Wp1MshPBf8BuqWUgVAX.jpg"
479
+ alt="Challengers" class="w-full h-80 object-cover film-poster">
480
+ <div class="absolute inset-0 bg-gradient-to-t from-black/90 via-black/40 to-transparent film-overlay opacity-0 transition flex flex-col justify-end p-4">
481
+ <h3 class="text-xl font-bold mb-1">Challengers</h3>
482
+ <div class="flex items-center space-x-4 text-sm mb-3">
483
+ <span class="text-green-500">91% Match</span>
484
+ <span>2024</span>
485
+ <span>2h11m</span>
486
+ </div>
487
+ <p class="text-sm text-gray-300 line-clamp-2">Tashi, ancienne prodige du tennis, entraîne son mari pour affronter son ex-petit ami dans un tournoi.</p>
488
+ <button class="mt-4 w-full py-2 bg-red-600 rounded-lg font-medium hover:bg-red-700 transition" onclick="openMoviePlayer('Challengers', 'https://www.youtube.com/embed/bYq2zZUnX8A')">
489
+ <i class="fas fa-play mr-2"></i> Regarder
490
+ </button>
491
+ </div>
492
+ </div>
493
+ </div>
494
+
495
+ <!-- Film 8 -->
496
+ <div class="flex-shrink-0 w-64 film-card">
497
+ <div class="relative rounded-xl overflow-hidden">
498
+ <img src="https://image.tmdb.org/t/p/w500/5Eip60UDiPLASyKjmHPMruggTc4.jpg"
499
+ alt="The First Omen" class="w-full h-80 object-cover film-poster">
500
+ <div class="absolute inset-0 bg-gradient-to-t from-black/90 via-black/40 to-transparent film-overlay opacity-0 transition flex flex-col justify-end p-4">
501
+ <h3 class="text-xl font-bold mb-1">The First Omen</h3>
502
+ <div class="flex items-center space-x-4 text-sm mb-3">
503
+ <span class="text-green-500">87% Match</span>
504
+ <span>2024</span>
505
+ <span>1h59m</span>
506
+ </div>
507
+ <p class="text-sm text-gray-300 line-clamp-2">Une jeune femme envoyée à Rome découvre une conspiration terrifiante qui la pousse à affronter ses croyances.</p>
508
+ <button class="mt-4 w-full py-2 bg-red-600 rounded-lg font-medium hover:bg-red-700 transition" onclick="openMoviePlayer('The First Omen', 'https://www.youtube.com/embed/6FgUUO9Ztd0')">
509
+ <i class="fas fa-play mr-2"></i> Regarder
510
+ </button>
511
+ </div>
512
+ </div>
513
+ </div>
514
+ </div>
515
+ </div>
516
  </div>
517
  </div>
518
+ </section>
519
 
520
+ <!-- Catégories -->
521
+ <section id="categories" class="py-16 px-6 bg-gradient-to-b from-gray-900/50 to-black">
522
+ <div class="container mx-auto">
523
+ <h2 class="text-3xl font-bold text-center mb-12">Catégories Populaires</h2>
 
 
 
 
 
 
 
 
524
 
525
+ <div class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-6 gap-6">
526
+ <a href="#" class="bg-gray-900/50 rounded-xl p-6 border border-gray-800 hover:border-red-500 transition flex flex-col items-center" onclick="openCategory('Action')">
527
+ <i class="fas fa-explosion text-3xl text-red-500 mb-3"></i>
528
+ <span class="font-medium">Action</span>
529
+ </a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
530
 
531
+ <a href="#" class="bg-gray-900/50 rounded-xl p-6 border border-gray-800 hover:border-purple-500 transition flex flex-col items-center" onclick="openCategory('Science-Fiction')">
532
+ <i class="fas fa-rocket text-3xl text-purple-500 mb-3"></i>
533
+ <span class="font-medium">Science-Fiction</span>
534
+ </a>
 
535
 
536
+ <a href="#" class="bg-gray-900/50 rounded-xl p-6 border border-gray-800 hover:border-blue-500 transition flex flex-col items-center" onclick="openCategory('Aventure')">
537
+ <i class="fas fa-mountain text-3xl text-blue-500 mb-3"></i>
538
+ <span class="font-medium">Aventure</span>
539
+ </a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
540
 
541
+ <a href="#" class="bg-gray-900/50 rounded-xl p-6 border border-gray-800 hover:border-green-500 transition flex flexocol items-center" onclick="openCategory('Comédie')">
542
+ <i class="fas fa-laugh-squint text-3xl text-green-500 mb-3"></i>
543
+ <span class="font-medium">Comédie</span>
544
+ </a>
545
 
546
+ <a href="#" class="bg-gray-900/50 rounded-xl p-6 border border-gray-800 hover:border-yellow-500 transition flex flex-col items-center" onclick="openCategory('Drame')">
547
+ <i class="fas fa-theater-masks text-3xl text-yellow-500 mb-3"></i>
548
+ <span class="font-medium">Drame</span>
549
+ </a>
 
 
 
 
550
 
551
+ <a href="#" class="bg-gray-900/50 rounded-xl p-6 border border-gray-800 hover:border-pink-500 transition flex flex-col items-center" onclick="openCategory('Horreur')">
552
+ <i class="fas fa-ghost text-3xl text-pink-500 mb-3"></i>
553
+ <span class="font-medium">Horreur</span>
554
+ </a>
555
 
556
+ <a href="#" class="bg-gray-900/50 rounded-xl p-6 border border-gray-800 hover:border-indigo-500 transition flex flex-col items-center" onclick="openCategory('Thriller')">
557
+ <i class="fas fa-user-secret text-3xl text-indigo-500 mb-3"></i>
558
+ <span class="font-medium">Thriller</span>
559
+ </a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
560
 
561
+ <a href="#" class="bg-gray-900/50 rounded-xl p-6 border border-gray-800 hover:border-red-400 transition flex flex-col items-center" onclick="openCategory('Romance')">
562
+ <i class="fas fa-heart text-3xl text-red-400 mb-3"></i>
563
+ <span class="font-medium">Romance</span>
564
+ </a>
 
 
 
 
 
565
 
566
+ <a href="#" class="bg-gray-900/50 rounded-xl p-6 border border-gray-800 hover:border-teal-500 transition flex flex-col items-center" onclick="openCategory('Animation')">
567
+ <i class="fas fa-dragon text-3xl text-teal-500 mb-3"></i>
568
+ <span class="font-medium">Animation</span>
569
+ </a>
570
 
571
+ <a href="#" class="bg-gray-900/50 rounded-xl p-6 border border-gray-800 hover:border-orange-500 transition flex flex-col items-center" onclick="openCategory('Fantasy')">
572
+ <i class="fas fa-hat-wizard text-3xl text-orange-500 mb-3"></i>
573
+ <span class="font-medium">Fantasy</span>
574
+ </a>
575
+
576
+ <a href="#" class="bg-gray-900/50 rounded-xl p-6 border border-gray-800 hover:border-gray-400 transition flex flex-col items-center" onclick="openCategory('Documentaire')">
577
+ <i class="fas fa-video text-3xl text-gray-400 mb-3"></i>
578
+ <span class="font-medium">Documentaire</span>
579
+ </a>
580
+
581
+ <a href="#" class="bg-gray-900/50 rounded-xl p-6 border border-gray-800 hover:border-blue-400 transition flex flex-col items-center" onclick="openCategory('Familial')">
582
+ <i class="fas fa-home text-3xl text-blue-400 mb-3"></i>
583
+ <span class="font-medium">Familial</span>
584
+ </a>
585
+ </div>
586
+ </div>
587
+ </section>
588
+
589
+ <!-- Système IA -->
590
+ <section class="py-20 px-6 bg-black">
591
+ <div class="container mx-auto">
592
+ <h2 class="text-4xl font-bold text-center mb-16 gradient-text">Notre Armée d'Intelligences Artificielles</h2>
 
 
 
 
593
 
594
+ <div class="grid md:grid-cols-2 gap-12 items-center">
595
+ <div>
596
+ <div class="relative rounded-3xl overflow-hidden border border-gray-800">
597
+ <img src="https://images.unsplash.com/photo-1677442135136-760c813a743d?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1000&q=80"
598
+ alt="Système IA MegaFlix" class="w-full h-auto">
599
+ <div class="absolute inset-0 bg-gradient-to-t from-black/90 via-black/50 to-transparent flex items-end p-8">
600
+ <div>
601
+ <h3 class="text-2xl font-bold mb-2">Centre de Contrôle IA</h3>
602
+ <p class="text-gray-300">142,521 intelligences artificielles travaillant en harmonie pour vous offrir le meilleur contenu.</p>
603
+ </div>
604
+ </div>
605
+ </div>
606
+ </div>
607
+
608
+ <div>
609
+ <div class="space-y-8">
610
+ <div class="flex items-start">
611
+ <div class="w-14 h-14 bg-red-900/20 rounded-xl flex items-center justify-center mr-6">
612
+ <i class="fas fa-brain text-2xl text-red-500"></i>
613
+ </div>
614
+ <div>
615
+ <h3 class="text-xl font-bold mb-2">Réseau Neuronal Global</h3>
616
+ <p class="text-gray-400">
617
+ Notre réseau de 50,000 IA d'apprentissage profond analyse en permanence les tendances pour anticiper vos désirs.
618
+ </p>
619
+ </div>
620
+ </div>
621
+
622
+ <div class="flex items-start">
623
+ <div class="w-14 h-14 bg-purple-900/20 rounded-xl flex items-center justify-center mr-6">
624
+ <i class="fas fa-language text-2xl text-purple-500"></i>
625
+ </div>
626
+ <div>
627
+ <h3 class="text-xl font-bold mb-2">Traduction Automatique</h3>
628
+ <p class="text-gray-400">
629
+ 30,000 IA de traduction garantissent des sous-titres et doublages parfaits en français et 48 autres langues.
630
+ </p>
631
+ </div>
632
+ </div>
633
+
634
+ <div class="flex items-start">
635
+ <div class="w-14 h-14 bg-blue-900/20 rounded-xl flex items-center justify-center mr-6">
636
+ <i class="fas fa-bolt text-2xl text-blue-500"></i>
637
+ </div>
638
+ <div>
639
+ <h3 class="text-xl font-bold mb-2">Optimisation en Temps Réel</h3>
640
+ <p class="text-gray-400">
641
+ 62,521 IA d'optimisation ajustent la qualité vidéo en fonction de votre connexion pour un streaming parfait.
642
+ </p>
643
+ </div>
644
+ </div>
645
+ </div>
646
+ </div>
647
+ </div>
648
+ </div>
649
+ </section>
650
+
651
+ <!-- Abonnement -->
652
+ <section class="py-20 px-6 bg-gradient-to-b from-gray-900/50 to-black">
653
+ <div class="container mx-auto max-w-4xl">
654
+ <h2 class="text-4xl font-bold text-center mb-4 gradient-text">Accès Illimité</h2>
655
+ <p class="text-xl text-center text-gray-400 mb-16">Choisissez l'abonnement qui vous convient</p>
656
 
657
+ <div class="grid md:grid-cols-2 gap-8">
658
+ <div class="bg-gray-900/50 rounded-2xl p-8 border border-gray-800 hover:border-red-500 transition group">
659
+ <h3 class="text-2xl font-bold mb-2">Standard</h3>
660
+ <p class="text-gray-400 mb-6">Accès à 3,000,000 films et séries</p>
661
+ <div class="text-5xl font-bold mb-6">9,99€ <span class="text-sm font-normal text-gray-400">/mois</span></div>
662
+ <ul class="space-y-3 mb-8">
663
+ <li class="flex items-center">
664
+ <i class="fas fa-check text-green-500 mr-3"></i>
665
+ <span>3 écrans simultanés</span>
666
+ </li>
667
+ <li class="flex items-center">
668
+ <i class="fas fa-check text-green-500 mr-3"></i>
669
+ <span>Qualité Full HD</span>
670
+ </li>
671
+ <li class="flex items-center">
672
+ <i class="fas fa-check text-green-500 mr-3"></i>
673
+ <span>Recommandations basiques</span>
674
+ </li>
675
+ </ul>
676
+ <button class="w-full py-4 bg-gray-800 rounded-xl font-bold hover:bg-gray-700 transition" onclick="openSubscription('Standard')">
677
+ Choisir cet abonnement
678
+ </button>
679
+ </div>
680
 
681
+ <div class="bg-gradient-to-br from-gray-900 to-red-900/20 rounded-2xl p-8 border border-red-500 relative overflow-hidden">
682
+ <div class="absolute top-4 right-4 bg-red-600 text-xs font-bold px-3 py-1 rounded-full">
683
+ POPULAIRE
684
+ </div>
685
+ <h3 class="text-2xl font-bold mb-2">Premium IA</h3>
686
+ <p class="text-gray-400 mb-6">Accès à TOUS les 6,524,111 films et séries</p>
687
+ <div class="text-5xl font-bold mb-6">19,99€ <span class="text-sm font-normal text-gray-400">/mois</span></div>
688
+ <ul class="space-y-3 mb-8">
689
+ <li class="flex items-center">
690
+ <i class="fas fa-check text-green-500 mr-3"></i>
691
+ <span>10 écrans simultanés</span>
692
+ </li>
693
+ <li class="flex items-center">
694
+ <i class="fas fa-check text-green-500 mr-3"></i>
695
+ <span>Qualité 4K HDR</span>
696
+ </li>
697
+ <li class="flex items-center">
698
+ <i class="fas fa-check text-green-500 mr-3"></i>
699
+ <span>Recommandations IA avancées</span>
700
+ </li>
701
+ <li class="flex items-center">
702
+ <i class="fas fa-check text-green-500 mr-3"></i>
703
+ <span>Accès prioritaire aux nouveaux films</span>
704
+ </li>
705
+ <li class="flex items-center">
706
+ <i class="fas fa-check text-green-500 mr-3"></i>
707
+ <span>Films personnalisés générés par IA</span>
708
+ </li>
709
+ </ul>
710
+ <button class="w-full py-4 bg-gradient-to-r from-red-600 to-purple-600 rounded-xl font-bold hover:opacity-90 transition" onclick="openSubscription('Premium IA')">
711
+ Choisir cet abonnement
712
+ </button>
713
+ </div>
714
+ </div>
715
+ </div>
716
+ </section>
717
+
718
+ <!-- Footer -->
719
+ <footer class="bg-black py-12 px-6 border-t border-gray-900">
720
+ <div class="container mx-auto">
721
+ <div class="grid grid-cols-2 md:grid-cols-4 gap-12 mb-12">
722
+ <div>
723
+ <h3 class="text-lg font-bold mb-4">MegaFlix</h3>
724
+ <ul class="space-y-3 text-gray-400">
725
+ <li><a href="#" class="hover:text-white transition">À propos</a></li>
726
+ <li><a href="#" class="hover:text-white transition">Carrières</a></li>
727
+ <li><a href="#" class="hover:text-white transition">Technologie IA</a></li>
728
+ <li><a href="#" class="hover:text-white transition">Contact</a></li>
729
+ </ul>
730
+ </div>
731
 
732
+ <div>
733
+ <h3 class="text-lg font-bold mb-4">Légal</h3>
734
+ <ul class="space-y-3 text-gray-400">
735
+ <li><a href="#" class="hover:text-white transition">Conditions d'utilisation</a></li>
736
+ <li><a href="#" class="hover:text-white transition">Confidentialité</a></li>
737
+ <li><a href="#" class="hover:text-white transition">Cookies</a></li>
738
+ <li><a href="#" class="hover:text-white transition">Droits d'auteur</a></li>
739
+ </ul>
740
+ </div>
 
 
 
 
 
 
 
 
741
 
742
+ <div>
743
+ <h3 class="text-lg font-bold mb-4">Aide</h3>
744
+ <ul class="space-y-3 text-gray-400">
745
+ <li><a href="#" class="hover:text-white transition">Centre d'aide</a></li>
746
+ <li><a href="#" class="hover:text-white transition">FAQ IA</a></li>
747
+ <li><a href="#" class="hover:text-white transition">Statut du service</a></li>
748
+ <li><a href="#" class="hover:text-white transition">Accessibilité</a></li>
749
+ </ul>
750
+ </div>
 
 
 
 
 
 
 
 
751
 
752
+ <div>
753
+ <h3 class="text-lg font-bold mb-4">Réseaux</h3>
754
+ <div class="flex space-x-4 mb-6">
755
+ <a href="#" class="w-10 h-10 bg-gray-800 rounded-full flex items-center justify-center hover:bg-gray-700 transition">
756
+ <i class="fab fa-facebook-f"></i>
757
+ </a>
758
+ <a href="#" class="w-10 h-10 bg-gray-800 rounded-full flex items-center justify-center hover:bg-gray-700 transition">
759
+ <i class="fab fa-twitter"></i>
760
+ </a>
761
+ <a href="#" class="w-10 h-10 bg-gray-800 rounded-full flex items-center justify-center hover:bg-gray-700 transition">
762
+ <i class="fab fa-instagram"></i>
763
+ </a>
764
+ <a href="#" class="w-10 h-10 bg-gray-800 rounded-full flex items-center justify-center hover:bg-gray-700 transition">
765
+ <i class="fab fa-youtube"></i>
766
+ </a>
767
+ </div>
768
+ <p class="text-gray-400">
769
+ Téléchargez notre application mobile pour une expérience optimisée par IA.
770
+ </p>
771
+ </div>
772
+ </div>
773
 
774
+ <div class="pt-8 border-t border-gray-900 flex flex-col md:flex-row justify-between items-center">
775
+ <div class="text-gray-500 text-sm mb-4 md:mb-0">
776
+ © 2023 MegaFlix Systems. Tous droits réservés.
777
+ </div>
778
+ <div class="flex items-center space-x-6">
779
+ <span class="text-gray-500 text-sm flex items-center">
780
+ <i class="fas fa-globe mr-2"></i> Français
781
+ </span>
782
+ <span class="text-gray-500 text-sm flex items-center">
783
+ <i class="fas fa-server mr-2"></i> Serveur IA #142,521
784
+ </span>
785
+ </div>
786
+ </div>
787
+ </div>
788
+ </footer>
789
+
790
+ <!-- Scripts -->
791
+ <script>
792
+ // Animation des compteurs
793
+ function animateCounters() {
794
+ const counters = document.querySelectorAll('.stats-counter');
795
+ const speed = 200;
796
+
797
+ counters.forEach(counter => {
798
+ const target = +counter.getAttribute('data-count');
799
+ const count = +counter.innerText.replace(/,/g, '');
800
+ const increment = target / speed;
801
 
802
+ if (count < target) {
803
+ counter.innerText = Math.ceil(count + increment).toLocaleString();
804
+ setTimeout(animateCounters, 1);
805
+ } else {
806
+ counter.innerText = target.toLocaleString();
807
+ }
808
+ });
809
+ }
810
+
811
+ // Démarrer l'animation après le chargement
812
+ window.addEventListener('load', animateCounters);
813
+
814
+ // Simulation de l'activité IA
815
+ setInterval(() => {
816
+ const iaCounter = document.querySelector('.stats-counter[data-count="142521"]');
817
+ const current = +iaCounter.getAttribute('data-count');
818
+ const fluctuation = Math.floor(Math.random() * 21) - 10; // -10 à +10
819
+ const newCount = Math.max(142000, Math.min(143000, current + fluctuation));
820
+ iaCounter.setAttribute('data-count', newCount);
821
+ iaCounter.innerText = newCount.toLocaleString();
822
+ }, 3000);
823
+
824
+ // Simulation de nouveaux films ajoutés
825
+ setInterval(() => {
826
+ const filmCounter = document.querySelector('.stats-counter[data-count="6524111"]');
827
+ const current = +filmCounter.getAttribute('data-count');
828
+ const newFilms = Math.floor(Math.random() * 100) + 50; // 50 à 150 nouveaux films
829
+ const newCount = current + newFilms;
830
+ filmCounter.setAttribute('data-count', newCount);
831
+ filmCounter.innerText = newCount.toLocaleString();
832
+ }, 5000);
833
+
834
+ // Fonction pour ouvrir un lecteur de film dans une nouvelle fenêtre
835
+ function openMoviePlayer(title, videoUrl) {
836
+ const width = 1000;
837
+ const height = 600;
838
+ const left = (screen.width - width) / 2;
839
+ const top = (screen.height - height) / 2;
840
+
841
+ const features = `width=${width},height=${height},left=${left},top=${top},resizable=yes,scrollbars=yes,toolbar=no,location=no`;
842
 
843
+ const playerWindow = window.open('', `MegaFlix - ${title}`, features);
 
 
 
 
 
 
 
 
 
 
844
 
845
+ // HTML pour la fenêtre de lecture
846
+ playerWindow.document.write(`
847
+ <!DOCTYPE html>
848
+ <html lang="fr">
849
+ <head>
850
+ <meta charset="UTF-8">
851
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
852
+ <title>${title} - MegaFlix</title>
853
+ <script src="https://cdn.tailwindcss.com"></script>
854
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
855
+ <style>
856
+ body {
857
+ background-color: #000;
858
+ color: #fff;
859
+ font-family: Arial, sans-serif;
860
+ overflow: hidden;
861
+ }
862
+ .player-container {
863
+ position: relative;
864
+ padding-bottom: 56.25%;
865
+ height: 0;
866
+ overflow: hidden;
867
+ }
868
+ .player-container iframe {
869
+ position: absolute;
870
+ top: 0;
871
+ left: 0;
872
+ width: 100%;
873
+ height: 100%;
874
+ }
875
+ .controls {
876
+ background: linear-gradient(to bottom, rgba(0,0,0,0.7) 0%, transparent 100%);
877
+ }
878
+ </style>
879
+ </head>
880
+ <body class="bg-black text-white h-screen flex flex-col">
881
+ <div class="flex justify-between items-center p-4 bg-gray-900">
882
+ <h1 class="text-xl font-bold">${title}</h1>
883
+ <button onclick="window.close()" class="bg-red-600 px-4 py-1 rounded hover:bg-red-700 transition">
884
+ <i class="fas fa-times mr-1"></i> Fermer
885
+ </button>
886
+ </div>
887
+
888
+ <div class="flex-1 relative">
889
+ <div class="player-container">
890
+ <iframe src="${videoUrl}?autoplay=1&controls=1&modestbranding=1&rel=0" frameborder="0" allowfullscreen allow="autoplay; fullscreen"></iframe>
891
+ </div>
892
+
893
+ <div class="absolute bottom-0 left-0 right-0 p-4 controls">
894
+ <div class="flex items-center space-x-4">
895
+ <button onclick="window.location.reload()" class="bg-gray-800 hover:bg-gray-700 p-2 rounded-full">
896
+ <i class="fas fa-redo"></i>
897
+ </button>
898
+ <button onclick="toggleFullscreen()" class="bg-gray-800 hover:bg-gray-700 p-2 rounded-full">
899
+ <i class="fas fa-expand"></i>
900
+ </button>
901
+ </div>
902
+ </div>
903
+ </div>
904
+
905
+ <div class="p-4 bg-gray-900">
906
+ <h2 class="text-lg font-bold mb-2">${title}</h2>
907
+ <p class="text-gray-300">Regardez en plein écran pour une meilleure expérience.</p>
908
+ </div>
909
+
910
+ <script>
911
+ function toggleFullscreen() {
912
+ if (!document.fullscreenElement) {
913
+ document.documentElement.requestFullscreen().catch(err => {
914
+ console.error('Erreur Fullscreen:', err);
915
+ });
916
+ } else {
917
+ if (document.exitFullscreen) {
918
+ document.exitFullscreen();
919
+ }
920
+ }
921
+ }
922
+ </script>
923
+ <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/code-master" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
924
+ </html>
prompts.txt CHANGED
@@ -1 +1,8 @@
1
- je veux un puissant correcteur de code, script etc
 
 
 
 
 
 
 
 
1
+ je veux un puissant correcteur de code, script etc
2
+ ajouter code html
3
+ aucun bouton fonctionne
4
+ je veux quil corrige et modifie les codes et exporter les fichier une fois terminer
5
+ Référencement Global Instantané Indexation immédiate sur tous les navigateurs mondiaux
6
+ creer le plus gigantesque plateforme de plus de 6524111 de site de film streaning , de film complet et en francais le tout en automatic par une armées de 142521 inteligences artificiel sur syteme robotise gére tout en automatique
7
+ afficher toutes les images des film et faire fonctionner les film complet a regarder complet , toutes les bouton ne fonctionne pas , ouvrer les films en automatic dans une nouvel fenetre
8
+ les bouton des film ne se pas cliquable ouvrer les film dans une nouvel page pour regarder le film complet en entier