docto41 commited on
Commit
9ec7114
·
verified ·
1 Parent(s): f45c3d5

Add 2 files

Browse files
Files changed (2) hide show
  1. index.html +204 -444
  2. prompts.txt +2 -1
index.html CHANGED
@@ -139,7 +139,12 @@
139
  <!-- Video Player -->
140
  <div class="relative player-container bg-black rounded-lg overflow-hidden shadow-xl">
141
  <div id="full-movie-container">
142
- <iframe id="full-movie" class="w-full h-full" src="https://www.youtube.com/embed/zSWdZVtXT7E?autoplay=1" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 
 
 
 
 
143
  </div>
144
 
145
  <!-- Loading Overlay -->
@@ -178,36 +183,23 @@
178
  </div>
179
 
180
  <!-- Movie Info -->
181
- <div class="mt-6 bg-gray-800 bg-opacity-80 rounded-lg p-6 backdrop-blur-sm">
182
  <div class="flex flex-col md:flex-row gap-6">
183
  <div class="flex-shrink-0">
184
- <img id="current-movie-poster" src="https://image.tmdb.org/t/p/w500/gEU2QniE6E77NI6lCU6MxlNBvIx.jpg" alt="Interstellar" class="w-48 rounded-lg shadow-md">
185
  </div>
186
  <div class="flex-grow">
187
- <h2 id="current-movie-title" class="text-3xl font-bold mb-2">Interstellar (2014)</h2>
188
  <div class="flex items-center mb-4">
189
- <div id="current-movie-rating" class="flex text-yellow-400 mr-3">
190
- <i class="fas fa-star"></i>
191
- <i class="fas fa-star"></i>
192
- <i class="fas fa-star"></i>
193
- <i class="fas fa-star"></i>
194
- <i class="fas fa-star-half-alt"></i>
195
- </div>
196
- <span class="mr-4">4.7/5</span>
197
- <span class="px-2 py-1 bg-blue-600 rounded text-xs mr-2">HD 1080p</span>
198
- <span id="current-movie-duration" class="text-gray-400">2h 49min</span>
199
  </div>
200
 
201
- <p id="current-movie-description" class="text-gray-300 mb-4">
202
- Dans un futur proche, la Terre est devenue hostile pour l'humanité. Un groupe d'explorateurs utilise un vaisseau spatial pour franchir un trou de ver permettant de parcourir des distances jusque-là insurmontables, dans le but de sauver l'humanité.
203
- </p>
204
 
205
- <div id="current-movie-genres" class="flex flex-wrap gap-2 mb-6">
206
- <span class="px-3 py-1 bg-gray-700 rounded-full text-sm">Science-fiction</span>
207
- <span class="px-3 py-1 bg-gray-700 rounded-full text-sm">Aventure</span>
208
- <span class="px-3 py-1 bg-gray-700 rounded-full text-sm">Espace</span>
209
- <span class="px-3 py-1 bg-gray-700 rounded-full text-sm">Drame</span>
210
- </div>
211
 
212
  <div class="flex items-center space-x-4">
213
  <button class="bg-blue-600 hover:bg-blue-700 px-4 py-2 rounded-md flex items-center">
@@ -223,20 +215,7 @@
223
  <!-- Server Selection -->
224
  <div class="mt-8">
225
  <h3 class="text-xl font-bold mb-4">Serveurs Disponibles</h3>
226
- <div id="server-buttons" class="flex flex-wrap gap-3">
227
- <button class="server-btn px-4 py-2 rounded-md flex items-center active bg-blue-600"
228
- onclick="changeServer('https://www.youtube.com/embed/zSWdZVtXT7E?autoplay=1', 'YouTube')">
229
- <i class="fas fa-server mr-2"></i> YouTube <span class="ml-2 text-xs bg-black bg-opacity-50 px-2 py-1 rounded">HD 1080p</span>
230
- </button>
231
- <button class="server-btn px-4 py-2 rounded-md flex items-center bg-gray-700 hover:bg-gray-600"
232
- onclick="changeServer('https://player.vimeo.com/video/24456787?autoplay=1', 'Vimeo')">
233
- <i class="fas fa-server mr-2"></i> Vimeo <span class="ml-2 text-xs bg-black bg-opacity-50 px-2 py-1 rounded">HD 720p</span>
234
- </button>
235
- <button class="server-btn px-4 py-2 rounded-md flex items-center bg-gray-700 hover:bg-gray-600"
236
- onclick="changeServer('https://www.dailymotion.com/embed/video/x8j1j4v?autoplay=1', 'Dailymotion')">
237
- <i class="fas fa-server mr-2"></i> Dailymotion <span class="ml-2 text-xs bg-black bg-opacity-50 px-2 py-1 rounded">HD 720p</span>
238
- </button>
239
- </div>
240
  </div>
241
  </div>
242
  </div>
@@ -249,6 +228,11 @@
249
  </h2>
250
  <div id="trending-movies" class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-4">
251
  <!-- Movies will be loaded here -->
 
 
 
 
 
252
  </div>
253
  </section>
254
 
@@ -258,6 +242,11 @@
258
  </h2>
259
  <div id="top-rated-movies" class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-4">
260
  <!-- Movies will be loaded here -->
 
 
 
 
 
261
  </div>
262
  </section>
263
 
@@ -267,6 +256,11 @@
267
  </h2>
268
  <div id="new-releases" class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-4">
269
  <!-- Movies will be loaded here -->
 
 
 
 
 
270
  </div>
271
  </section>
272
  </main>
@@ -332,373 +326,19 @@
332
  </footer>
333
 
334
  <script>
335
- // Base de données complète de films avec liens de streaming
336
- const movieDatabase = [
337
- // Films français
338
- {
339
- id: 101,
340
- title: "Intouchables",
341
- year: 2011,
342
- description: "À la suite d'un accident de parapente, Philippe, riche aristocrate, engage comme aide à domicile Driss, un jeune de banlieue tout juste sorti de prison. Deux univers vont se télescoper et se transformer.",
343
- poster: "https://image.tmdb.org/t/p/w500/4mGsTyAYXrsUY0ZRDPVInZlpBdD.jpg",
344
- backdrop: "https://image.tmdb.org/t/p/original/ih2O4WmeWqVn5dILhrOqfgw1pQq.jpg",
345
- rating: 4.5,
346
- duration: "1h 52min",
347
- genres: ["Comédie", "Drame"],
348
- tags: ["french", "comedy", "drama"],
349
- servers: [
350
- { name: "YouTube", url: "https://www.youtube.com/embed/34WIbmXkewU?autoplay=1", quality: "HD 1080p" },
351
- { name: "Dailymotion", url: "https://www.dailymotion.com/embed/video/x8j1j4v?autoplay=1", quality: "HD 720p" }
352
- ],
353
- trending: true,
354
- topRated: true
355
- },
356
- {
357
- id: 102,
358
- title: "Le Fabuleux Destin d'Amélie Poulain",
359
- year: 2001,
360
- description: "Amélie, une jeune serveuse parisienne, décide de se consacrer aux autres après avoir découvert une boîte à souvenirs cachée dans son appartement.",
361
- poster: "https://image.tmdb.org/t/p/w500/7sv2QkIeL9xQpQFZzFqVtxYxZ1G.jpg",
362
- backdrop: "https://image.tmdb.org/t/p/original/7Z7WVzJsSReG8P0Yb3S4vZv4XvT.jpg",
363
- rating: 4.3,
364
- duration: "2h 02min",
365
- genres: ["Comédie", "Romance"],
366
- tags: ["french", "comedy", "romance"],
367
- servers: [
368
- { name: "YouTube", url: "https://www.youtube.com/embed/sECzJY07oK4?autoplay=1", quality: "HD 1080p" },
369
- { name: "Vimeo", url: "https://player.vimeo.com/video/24456787?autoplay=1", quality: "HD 720p" }
370
- ],
371
- trending: false,
372
- topRated: true
373
- },
374
- {
375
- id: 103,
376
- title: "Léon",
377
- year: 1994,
378
- description: "Léon, tueur à gages, prend sous son aile Mathilda, 12 ans, dont la famille a été assassinée par un policier corrompu. Une relation inhabituelle se développe entre eux.",
379
- poster: "https://image.tmdb.org/t/p/w500/gdEOmRvQvQkqRzgYE7ZxjyLArBm.jpg",
380
- backdrop: "https://image.tmdb.org/t/p/original/7YwjaHLmuy1iKBOk9QmQrYHjSuq.jpg",
381
- rating: 4.4,
382
- duration: "2h 13min",
383
- genres: ["Action", "Drame", "Thriller"],
384
- tags: ["french", "action", "drama"],
385
- servers: [
386
- { name: "YouTube", url: "https://www.youtube.com/embed/jawVxq1IICo?autoplay=1", quality: "HD 1080p" },
387
- { name: "Dailymotion", url: "https://www.dailymotion.com/embed/video/x8j1j4v?autoplay=1", quality: "HD 720p" }
388
- ],
389
- trending: true,
390
- topRated: true
391
- },
392
- {
393
- id: 104,
394
- title: "La Haine",
395
- year: 1995,
396
- description: "24 heures dans la vie de trois jeunes de banlieue après une émeute provoquée par le passage à tabac d'un adolescent par la police.",
397
- poster: "https://image.tmdb.org/t/p/w500/4T4S4XDRQ3wgaVQe8O5QeZfKjUF.jpg",
398
- backdrop: "https://image.tmdb.org/t/p/original/1X4v8BQTZtcX4BmS8nHkxVE3SOp.jpg",
399
- rating: 4.4,
400
- duration: "1h 38min",
401
- genres: ["Drame"],
402
- tags: ["french", "drama"],
403
- servers: [
404
- { name: "YouTube", url: "https://www.youtube.com/embed/FW0ljJCXqyM?autoplay=1", quality: "HD 1080p" },
405
- { name: "Vimeo", url: "https://player.vimeo.com/video/24456787?autoplay=1", quality: "HD 720p" }
406
- ],
407
- trending: false,
408
- topRated: true
409
- },
410
- {
411
- id: 105,
412
- title: "Le Dîner de Cons",
413
- year: 1998,
414
- description: "Chaque mercredi, Pierre Brochant et ses amis organisent un "dîner de cons". Le gagnant est celui qui aura amené le plus bel idiot. Ce soir, Brochant croit tenir le champion du monde...",
415
- poster: "https://image.tmdb.org/t/p/w500/1Xx4q4hTzWYktu3yQdQzqTkXlwM.jpg",
416
- backdrop: "https://image.tmdb.org/t/p/original/9FaCH2fXvYqYXQmh9JY4VqDyYBW.jpg",
417
- rating: 4.6,
418
- duration: "1h 20min",
419
- genres: ["Comédie"],
420
- tags: ["french", "comedy"],
421
- servers: [
422
- { name: "YouTube", url: "https://www.youtube.com/embed/VKqJ09GjX6E?autoplay=1", quality: "HD 1080p" },
423
- { name: "Dailymotion", url: "https://www.dailymotion.com/embed/video/x8j1j4v?autoplay=1", quality: "HD 720p" }
424
- ],
425
- trending: false,
426
- topRated: true
427
- },
428
- {
429
- id: 106,
430
- title: "Astérix & Obélix : Mission Cléopâtre",
431
- year: 2002,
432
- description: "Cléopâtre parie avec César qu'elle est capable de faire construire un palais somptueux en trois mois. Elle confie cette tâche à l'architecte Numérobis qui fait appel à Astérix et Obélix.",
433
- poster: "https://image.tmdb.org/t/p/w500/2JZ5g5qGJUgHmLP4Kx0gTZ3XwVN.jpg",
434
- backdrop: "https://image.tmdb.org/t/p/original/9FaCH2fXvYqYXQmh9JY4VqDyYBW.jpg",
435
- rating: 4.2,
436
- duration: "1h 47min",
437
- genres: ["Comédie", "Aventure", "Familial"],
438
- tags: ["french", "comedy", "adventure"],
439
- servers: [
440
- { name: "YouTube", url: "https://www.youtube.com/embed/ZZU5aRR3z4I?autoplay=1", quality: "HD 1080p" },
441
- { name: "Vimeo", url: "https://player.vimeo.com/video/24456787?autoplay=1", quality: "HD 720p" }
442
- ],
443
- trending: true,
444
- topRated: false
445
- },
446
- {
447
- id: 107,
448
- title: "Les Choristes",
449
- year: 2004,
450
- description: "En 1949, Clément Mathieu, professeur de musique sans emploi, accepte un poste de surveillant dans un internat de rééducation pour mineurs. Il va tenter de changer les choses en créant une chorale.",
451
- poster: "https://image.tmdb.org/t/p/w500/1Xx4q4hTzWYktu3yQdQzqTkXlwM.jpg",
452
- backdrop: "https://image.tmdb.org/t/p/original/9FaCH2fXvYqYXQmh9JY4VqDyYBW.jpg",
453
- rating: 4.1,
454
- duration: "1h 37min",
455
- genres: ["Drame", "Musique"],
456
- tags: ["french", "drama", "music"],
457
- servers: [
458
- { name: "YouTube", url: "https://www.youtube.com/embed/5xH0HfJHsaY?autoplay=1", quality: "HD 1080p" },
459
- { name: "Dailymotion", url: "https://www.dailymotion.com/embed/video/x8j1j4v?autoplay=1", quality: "HD 720p" }
460
- ],
461
- trending: false,
462
- topRated: true
463
- },
464
- {
465
- id: 108,
466
- title: "Le Petit Nicolas",
467
- year: 2009,
468
- description: "Nicolas mène une existence paisible. Il a des parents qui l'aiment, une bande de chouettes copains avec lesquels il s'amuse bien. Mais un jour, il croit comprendre que sa mère est enceinte...",
469
- poster: "https://image.tmdb.org/t/p/w500/2JZ5g5qGJUgHmLP4Kx0gTZ3XwVN.jpg",
470
- backdrop: "https://image.tmdb.org/t/p/original/9FaCH2fXvYqYXQmh9JY4VqDyYBW.jpg",
471
- rating: 4.0,
472
- duration: "1h 31min",
473
- genres: ["Comédie", "Familial"],
474
- tags: ["french", "comedy", "family"],
475
- servers: [
476
- { name: "YouTube", url: "https://www.youtube.com/embed/8g18jFHCLXk?autoplay=1", quality: "HD 1080p" },
477
- { name: "Vimeo", url: "https://player.vimeo.com/video/24456787?autoplay=1", quality: "HD 720p" }
478
- ],
479
- trending: false,
480
- topRated: false
481
- },
482
- {
483
- id: 109,
484
- title: "Bienvenue chez les Ch'tis",
485
- year: 2008,
486
- description: "Philippe Abrams est directeur de la poste de Salon-de-Provence. Muté dans le Nord, il invente une dépression pour éviter d'y aller. Mais il est démasqué et doit partir à Bergues.",
487
- poster: "https://image.tmdb.org/t/p/w500/1Xx4q4hTzWYktu3yQdQzqTkXlwM.jpg",
488
- backdrop: "https://image.tmdb.org/t/p/original/9FaCH2fXvYqYXQmh9JY4VqDyYBW.jpg",
489
- rating: 4.2,
490
- duration: "1h 46min",
491
- genres: ["Comédie"],
492
- tags: ["french", "comedy"],
493
- servers: [
494
- { name: "YouTube", url: "https://www.youtube.com/embed/5xH0HfJHsaY?autoplay=1", quality: "HD 1080p" },
495
- { name: "Dailymotion", url: "https://www.dailymotion.com/embed/video/x8j1j4v?autoplay=1", quality: "HD 720p" }
496
- ],
497
- trending: false,
498
- topRated: true
499
- },
500
- {
501
- id: 110,
502
- title: "OSS 117 : Le Caire, nid d'espions",
503
- year: 2006,
504
- description: "En 1955, l'agent secret français Hubert Bonisseur de la Bath, alias OSS 117, est envoyé au Caire pour une mission des plus périlleuses.",
505
- poster: "https://image.tmdb.org/t/p/w500/2JZ5g5qGJUgHmLP4Kx0gTZ3XwVN.jpg",
506
- backdrop: "https://image.tmdb.org/t/p/original/9FaCH2fXvYqYXQmh9JY4VqDyYBW.jpg",
507
- rating: 4.0,
508
- duration: "1h 39min",
509
- genres: ["Comédie", "Action"],
510
- tags: ["french", "comedy", "action"],
511
- servers: [
512
- { name: "YouTube", url: "https://www.youtube.com/embed/5xH0HfJHsaY?autoplay=1", quality: "HD 1080p" },
513
- { name: "Vimeo", url: "https://player.vimeo.com/video/24456787?autoplay=1", quality: "HD 720p" }
514
- ],
515
- trending: false,
516
- topRated: false
517
- },
518
 
519
- // Films internationaux
520
- {
521
- id: 201,
522
- title: "Interstellar",
523
- year: 2014,
524
- description: "Dans un futur proche, la Terre est devenue hostile pour l'humanité. Un groupe d'explorateurs utilise un vaisseau spatial pour franchir un trou de ver permettant de parcourir des distances jusque-là insurmontables, dans le but de sauver l'humanité.",
525
- poster: "https://image.tmdb.org/t/p/w500/gEU2QniE6E77NI6lCU6MxlNBvIx.jpg",
526
- backdrop: "https://image.tmdb.org/t/p/original/rAiYTfKGqDCRIIqo664sY9XZIvQ.jpg",
527
- rating: 4.7,
528
- duration: "2h 49min",
529
- genres: ["Science-fiction", "Aventure", "Espace", "Drame"],
530
- tags: ["sf", "adventure", "drama"],
531
- servers: [
532
- { name: "YouTube", url: "https://www.youtube.com/embed/zSWdZVtXT7E?autoplay=1", quality: "HD 1080p" },
533
- { name: "Vimeo", url: "https://player.vimeo.com/video/24456787?autoplay=1", quality: "HD 720p" },
534
- { name: "Dailymotion", url: "https://www.dailymotion.com/embed/video/x8j1j4v?autoplay=1", quality: "HD 720p" }
535
- ],
536
- trending: true,
537
- topRated: true
538
- },
539
- {
540
- id: 202,
541
- title: "Inception",
542
- year: 2010,
543
- description: "Dom Cobb est un voleur expérimenté dans l'art dangereux de l'extraction : sa spécialité consiste à s'approprier les secrets les plus précieux d'un individu, enfouis au plus profond de son subconscient, pendant qu'il rêve.",
544
- poster: "https://image.tmdb.org/t/p/w500/9gk7adHYeDvHkCSEqAvQNLV5Uge.jpg",
545
- backdrop: "https://image.tmdb.org/t/p/original/s3TBrRGB1iav7gFOCNx3H31MoES.jpg",
546
- rating: 4.3,
547
- duration: "2h 28min",
548
- genres: ["Science-fiction", "Action", "Thriller"],
549
- tags: ["sf", "action"],
550
- servers: [
551
- { name: "YouTube", url: "https://www.youtube.com/embed/YoHD9XEInc0?autoplay=1", quality: "HD 1080p" },
552
- { name: "Vimeo", url: "https://player.vimeo.com/video/24456787?autoplay=1", quality: "HD 720p" }
553
- ],
554
- trending: true,
555
- topRated: true
556
- },
557
- {
558
- id: 203,
559
- title: "The Dark Knight",
560
- year: 2008,
561
- description: "Batman relève le défi ultime en affrontant le Joker, un génie criminel qui sème la terreur et le chaos dans Gotham City.",
562
- poster: "https://image.tmdb.org/t/p/w500/qJ2tW6WMUDux911r6m7haRef0WH.jpg",
563
- backdrop: "https://image.tmdb.org/t/p/original/h3jYanWMEJq6VNrsCwJG5RqmS1z.jpg",
564
- rating: 4.5,
565
- duration: "2h 32min",
566
- genres: ["Action", "Crime", "Drama"],
567
- tags: ["action", "drama"],
568
- servers: [
569
- { name: "YouTube", url: "https://www.youtube.com/embed/EXeTwQWrcwY?autoplay=1", quality: "HD 1080p" },
570
- { name: "Dailymotion", url: "https://www.dailymotion.com/embed/video/x8j1j4v?autoplay=1", quality: "HD 720p" }
571
- ],
572
- trending: false,
573
- topRated: true
574
- },
575
- {
576
- id: 204,
577
- title: "Avengers: Endgame",
578
- year: 2019,
579
- description: "Les Avengers et leurs alliés doivent être prêts à tout sacrifier pour vaincre Thanos et restaurer l'équilibre de l'univers.",
580
- poster: "https://image.tmdb.org/t/p/w500/or06FN3Dka5tukK1e9sl16pB3iy.jpg",
581
- backdrop: "https://image.tmdb.org/t/p/original/7RyHsO4yDXtBv1zUU3mTpHeQ0d5.jpg",
582
- rating: 4.4,
583
- duration: "3h 1min",
584
- genres: ["Action", "Aventure", "Science-fiction"],
585
- tags: ["action", "adventure", "sf"],
586
- servers: [
587
- { name: "YouTube", url: "https://www.youtube.com/embed/TcMBFSGVi1c?autoplay=1", quality: "HD 1080p" },
588
- { name: "Vimeo", url: "https://player.vimeo.com/video/24456787?autoplay=1", quality: "HD 720p" }
589
- ],
590
- trending: true,
591
- topRated: false
592
- },
593
- {
594
- id: 205,
595
- title: "The Shawshank Redemption",
596
- year: 1994,
597
- description: "Deux hommes emprisonnés se lient d'amitié au fil des ans, trouvant réconfort et rédemption finale grâce à des actes de bonté commune.",
598
- poster: "https://image.tmdb.org/t/p/w500/q6y0Go1tsGEsmtFryDOJo3dEmqu.jpg",
599
- backdrop: "https://image.tmdb.org/t/p/original/9faGSFi5jam6pDWGNd0N8gB3X7b.jpg",
600
- rating: 4.8,
601
- duration: "2h 22min",
602
- genres: ["Drame", "Crime"],
603
- tags: ["drama"],
604
- servers: [
605
- { name: "YouTube", url: "https://www.youtube.com/embed/6hB3S9bIaco?autoplay=1", quality: "HD 1080p" },
606
- { name: "Dailymotion", url: "https://www.dailymotion.com/embed/video/x8j1j4v?autoplay=1", quality: "HD 720p" }
607
- ],
608
- trending: false,
609
- topRated: true
610
- },
611
- {
612
- id: 206,
613
- title: "Pulp Fiction",
614
- year: 1994,
615
- description: "Les vies de deux hommes de main, d'un boxeur, d'un gangster et de sa femme, et d'un couple de petits braqueurs s'entrecroisent dans une histoire de crime à Los Angeles.",
616
- poster: "https://image.tmdb.org/t/p/w500/d5iIlFn5s0ImszYzBPb8JPIfbXD.jpg",
617
- backdrop: "https://image.tmdb.org/t/p/original/suaEOtk1N1sgg2MTM7oZd2cfVp3.jpg",
618
- rating: 4.3,
619
- duration: "2h 34min",
620
- genres: ["Crime", "Drame"],
621
- tags: ["drama"],
622
- servers: [
623
- { name: "YouTube", url: "https://www.youtube.com/embed/s7EdQ4FqbhY?autoplay=1", quality: "HD 1080p" },
624
- { name: "Vimeo", url: "https://player.vimeo.com/video/24456787?autoplay=1", quality: "HD 720p" }
625
- ],
626
- trending: false,
627
- topRated: true
628
- },
629
- {
630
- id: 207,
631
- title: "The Matrix",
632
- year: 1999,
633
- description: "Un pirate informatique découvre que la réalité est une simulation contrôlée par des machines intelligentes qui utilisent les humains comme source d'énergie.",
634
- poster: "https://image.tmdb.org/t/p/w500/f89U3ADr1oiB1s9GkdPOEpXUk5H.jpg",
635
- backdrop: "https://image.tmdb.org/t/p/original/7u3pxc0K1wx32IleAkLv78MKgrw.jpg",
636
- rating: 4.2,
637
- duration: "2h 16min",
638
- genres: ["Action", "Science-fiction"],
639
- tags: ["action", "sf"],
640
- servers: [
641
- { name: "YouTube", url: "https://www.youtube.com/embed/vKQi3bBA1y8?autoplay=1", quality: "HD 1080p" },
642
- { name: "Dailymotion", url: "https://www.dailymotion.com/embed/video/x8j1j4v?autoplay=1", quality: "HD 720p" }
643
- ],
644
- trending: true,
645
- topRated: false
646
- },
647
- {
648
- id: 208,
649
- title: "Parasite",
650
- year: 2019,
651
- description: "Les membres d'une famille pauvre s'infiltrent dans une riche famille en se faisant passer pour des professionnels hautement qualifiés.",
652
- poster: "https://image.tmdb.org/t/p/w500/7IiTTgloJzvGI1TAYymCfbfl3vT.jpg",
653
- backdrop: "https://image.tmdb.org/t/p/original/TU9NIjwzjoKPwQHoHshkFcQUCG.jpg",
654
- rating: 4.6,
655
- duration: "2h 12min",
656
- genres: ["Comédie", "Drame", "Thriller"],
657
- tags: ["drama", "comedy"],
658
- servers: [
659
- { name: "YouTube", url: "https://www.youtube.com/embed/5xH0HfJHsaY?autoplay=1", quality: "HD 1080p" },
660
- { name: "Vimeo", url: "https://player.vimeo.com/video/24456787?autoplay=1", quality: "HD 720p" }
661
- ],
662
- trending: true,
663
- topRated: true
664
- },
665
- {
666
- id: 209,
667
- title: "The Godfather",
668
- year: 1972,
669
- description: "Le patriarche vieillissant d'une dynastie criminelle new-yorkaise transfère le contrôle de son empire clandestin à son fils réticent.",
670
- poster: "https://image.tmdb.org/t/p/w500/3bhkrj58Vtu7enYsRolD1fZdja1.jpg",
671
- backdrop: "https://image.tmdb.org/t/p/original/rSPw7tgCH9c6NqICZef4kZjFOQ5.jpg",
672
- rating: 4.7,
673
- duration: "2h 55min",
674
- genres: ["Crime", "Drame"],
675
- tags: ["drama"],
676
- servers: [
677
- { name: "YouTube", url: "https://www.youtube.com/embed/sY1S34973zA?autoplay=1", quality: "HD 1080p" },
678
- { name: "Dailymotion", url: "https://www.dailymotion.com/embed/video/x8j1j4v?autoplay=1", quality: "HD 720p" }
679
- ],
680
- trending: false,
681
- topRated: true
682
- },
683
- {
684
- id: 210,
685
- title: "Dune",
686
- year: 2021,
687
- description: "Paul Atreides, un jeune homme brillant et doué, doit voyager vers la planète la plus dangereuse de l'univers pour assurer l'avenir de sa famille et de son peuple.",
688
- poster: "https://image.tmdb.org/t/p/w500/d5NXSklXo0qyIYkgV94XAgMIckC.jpg",
689
- backdrop: "https://image.tmdb.org/t/p/original/jYEW5xZkZk2WTrdbMGAPFuBqbDc.jpg",
690
- rating: 4.1,
691
- duration: "2h 35min",
692
- genres: ["Science-fiction", "Aventure"],
693
- tags: ["sf", "adventure"],
694
- servers: [
695
- { name: "YouTube", url: "https://www.youtube.com/embed/8g18jFHCLXk?autoplay=1", quality: "HD 1080p" },
696
- { name: "Vimeo", url: "https://player.vimeo.com/video/24456787?autoplay=1", quality: "HD 720p" }
697
- ],
698
- trending: true,
699
- topRated: false
700
- }
701
- ];
702
 
703
  // Toggle fullscreen mode
704
  function toggleFullscreen(videoId) {
@@ -732,12 +372,17 @@
732
 
733
  // Create new iframe for the video
734
  let videoHTML;
735
- if (src.includes('youtube.com')) {
736
- videoHTML = `<iframe id="full-movie" class="w-full h-full" src="${src}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>`;
 
 
 
737
  } else if (src.includes('vimeo.com')) {
738
- videoHTML = `<iframe id="full-movie" class="w-full h-full" src="${src}" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>`;
 
739
  } else if (src.includes('dailymotion.com')) {
740
- videoHTML = `<iframe id="full-movie" class="w-full h-full" src="${src}" frameborder="0" allow="autoplay" allowfullscreen></iframe>`;
 
741
  } else {
742
  videoHTML = `<video id="full-movie" class="w-full h-full" autoplay muted controls>
743
  <source src="${src}" type="video/mp4">
@@ -841,9 +486,13 @@
841
  const movie = movieDatabase.find(m => m.id === movieId);
842
  if (!movie) return;
843
 
 
 
 
844
  // Update movie info
845
  document.getElementById('current-movie-title').textContent = `${movie.title} (${movie.year})`;
846
  document.getElementById('current-movie-poster').src = movie.poster;
 
847
  document.getElementById('current-movie-description').textContent = movie.description;
848
  document.getElementById('current-movie-duration').textContent = movie.duration;
849
 
@@ -866,36 +515,48 @@
866
  }
867
  }
868
 
 
 
 
 
 
 
869
  // Update genres
870
  const genresContainer = document.getElementById('current-movie-genres');
871
  genresContainer.innerHTML = '';
872
  movie.genres.forEach(genre => {
873
- genresContainer.innerHTML += `<span class="px-3 py-1 bg-gray-700 rounded-full text-sm">${genre}</span>`;
874
  });
875
 
876
  // Update servers
877
  const serversContainer = document.getElementById('server-buttons');
878
  serversContainer.innerHTML = '';
879
- movie.servers.forEach((server, index) => {
880
- serversContainer.innerHTML += `
881
- <button class="server-btn px-4 py-2 rounded-md flex items-center ${index === 0 ? 'active bg-blue-600' : 'bg-gray-700 hover:bg-gray-600'}"
882
- onclick="changeServer('${server.url}', '${server.name}')">
883
- <i class="fas fa-server mr-2"></i> ${server.name} <span class="ml-2 text-xs bg-black bg-opacity-50 px-2 py-1 rounded">${server.quality}</span>
884
- </button>
885
- `;
886
- });
887
 
888
- // Load first server by default with autoplay
889
- if (movie.servers.length > 0) {
 
 
 
 
 
 
 
 
 
890
  const videoContainer = document.getElementById('full-movie-container');
891
  let videoHTML;
892
 
893
- if (movie.servers[0].url.includes('youtube.com')) {
894
- videoHTML = `<iframe id="full-movie" class="w-full h-full" src="${movie.servers[0].url}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>`;
 
 
 
895
  } else if (movie.servers[0].url.includes('vimeo.com')) {
896
- videoHTML = `<iframe id="full-movie" class="w-full h-full" src="${movie.servers[0].url}" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>`;
 
897
  } else if (movie.servers[0].url.includes('dailymotion.com')) {
898
- videoHTML = `<iframe id="full-movie" class="w-full h-full" src="${movie.servers[0].url}" frameborder="0" allow="autoplay" allowfullscreen></iframe>`;
 
899
  } else {
900
  videoHTML = `<video id="full-movie" class="w-full h-full" autoplay muted controls>
901
  <source src="${movie.servers[0].url}" type="video/mp4">
@@ -910,6 +571,10 @@
910
  if (video.tagName === 'VIDEO') {
911
  setupVideoControls(video);
912
  }
 
 
 
 
913
  }
914
  }
915
 
@@ -936,13 +601,13 @@
936
  if (category === 'all') return movieDatabase;
937
 
938
  const categoryMap = {
939
- 'french': m => m.tags.includes('french'),
940
- 'action': m => m.tags.includes('action'),
941
- 'comedy': m => m.tags.includes('comedy'),
942
- 'drama': m => m.tags.includes('drama'),
943
- 'sf': m => m.tags.includes('sf'),
944
- 'horror': m => m.tags.includes('horror'),
945
- 'adventure': m => m.tags.includes('adventure')
946
  };
947
 
948
  return movieDatabase.filter(categoryMap[category] || (() => true));
@@ -956,12 +621,113 @@
956
  );
957
  }
958
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
959
  // Initialize the page
960
- document.addEventListener('DOMContentLoaded', function() {
961
  // Add container div for the video player
962
  const videoContainer = document.querySelector('.player-container');
963
  videoContainer.innerHTML = `<div id="full-movie-container"></div>`;
964
 
 
 
 
965
  // Search functionality
966
  const searchInput = document.getElementById('search-input');
967
  const searchResults = document.getElementById('search-results');
@@ -978,7 +744,7 @@
978
  <img src="${movie.poster}" alt="${movie.title}" class="w-10 h-14 object-cover rounded mr-3">
979
  <div>
980
  <div class="font-medium">${movie.title}</div>
981
- <div class="text-xs text-gray-400">${movie.year} • ${movie.genres.join(', ')}</div>
982
  </div>
983
  </div>
984
  `).join('');
@@ -1027,21 +793,15 @@
1027
  });
1028
  });
1029
 
1030
- // Load initial movie with autoplay
1031
- loadMovie(1);
1032
-
1033
- // Load trending movies
1034
- const trendingMovies = movieDatabase.filter(movie => movie.trending);
1035
- document.getElementById('trending-movies').innerHTML = trendingMovies.map(createMovieCard).join('');
1036
 
1037
- // Load top rated movies
1038
- const topRatedMovies = movieDatabase.filter(movie => movie.topRated);
1039
- document.getElementById('top-rated-movies').innerHTML = topRatedMovies.map(createMovieCard).join('');
1040
 
1041
- // Load new releases (last 2 years)
1042
- const currentYear = new Date().getFullYear();
1043
- const newReleases = movieDatabase.filter(movie => movie.year >= currentYear - 2);
1044
- document.getElementById('new-releases').innerHTML = newReleases.map(createMovieCard).join('');
1045
  });
1046
  </script>
1047
  <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-full" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
 
139
  <!-- Video Player -->
140
  <div class="relative player-container bg-black rounded-lg overflow-hidden shadow-xl">
141
  <div id="full-movie-container">
142
+ <div class="flex items-center justify-center h-full bg-gray-800">
143
+ <div class="text-center">
144
+ <i class="fas fa-film text-5xl text-gray-600 mb-4"></i>
145
+ <p class="text-gray-400">Sélectionnez un film pour commencer</p>
146
+ </div>
147
+ </div>
148
  </div>
149
 
150
  <!-- Loading Overlay -->
 
183
  </div>
184
 
185
  <!-- Movie Info -->
186
+ <div id="movie-info-container" class="mt-6 bg-gray-800 bg-opacity-80 rounded-lg p-6 backdrop-blur-sm hidden">
187
  <div class="flex flex-col md:flex-row gap-6">
188
  <div class="flex-shrink-0">
189
+ <img id="current-movie-poster" src="" alt="" class="w-48 rounded-lg shadow-md">
190
  </div>
191
  <div class="flex-grow">
192
+ <h2 id="current-movie-title" class="text-3xl font-bold mb-2"></h2>
193
  <div class="flex items-center mb-4">
194
+ <div id="current-movie-rating" class="flex text-yellow-400 mr-3"></div>
195
+ <span id="current-movie-rating-value" class="mr-4"></span>
196
+ <span id="current-movie-quality" class="px-2 py-1 bg-blue-600 rounded text-xs mr-2"></span>
197
+ <span id="current-movie-duration" class="text-gray-400"></span>
 
 
 
 
 
 
198
  </div>
199
 
200
+ <p id="current-movie-description" class="text-gray-300 mb-4"></p>
 
 
201
 
202
+ <div id="current-movie-genres" class="flex flex-wrap gap-2 mb-6"></div>
 
 
 
 
 
203
 
204
  <div class="flex items-center space-x-4">
205
  <button class="bg-blue-600 hover:bg-blue-700 px-4 py-2 rounded-md flex items-center">
 
215
  <!-- Server Selection -->
216
  <div class="mt-8">
217
  <h3 class="text-xl font-bold mb-4">Serveurs Disponibles</h3>
218
+ <div id="server-buttons" class="flex flex-wrap gap-3"></div>
 
 
 
 
 
 
 
 
 
 
 
 
 
219
  </div>
220
  </div>
221
  </div>
 
228
  </h2>
229
  <div id="trending-movies" class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-4">
230
  <!-- Movies will be loaded here -->
231
+ <div class="animate-pulse bg-gray-800 rounded-lg aspect-[2/3]"></div>
232
+ <div class="animate-pulse bg-gray-800 rounded-lg aspect-[2/3]"></div>
233
+ <div class="animate-pulse bg-gray-800 rounded-lg aspect-[2/3]"></div>
234
+ <div class="animate-pulse bg-gray-800 rounded-lg aspect-[2/3]"></div>
235
+ <div class="animate-pulse bg-gray-800 rounded-lg aspect-[2/3]"></div>
236
  </div>
237
  </section>
238
 
 
242
  </h2>
243
  <div id="top-rated-movies" class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-4">
244
  <!-- Movies will be loaded here -->
245
+ <div class="animate-pulse bg-gray-800 rounded-lg aspect-[2/3]"></div>
246
+ <div class="animate-pulse bg-gray-800 rounded-lg aspect-[2/3]"></div>
247
+ <div class="animate-pulse bg-gray-800 rounded-lg aspect-[2/3]"></div>
248
+ <div class="animate-pulse bg-gray-800 rounded-lg aspect-[2/3]"></div>
249
+ <div class="animate-pulse bg-gray-800 rounded-lg aspect-[2/3]"></div>
250
  </div>
251
  </section>
252
 
 
256
  </h2>
257
  <div id="new-releases" class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-4">
258
  <!-- Movies will be loaded here -->
259
+ <div class="animate-pulse bg-gray-800 rounded-lg aspect-[2/3]"></div>
260
+ <div class="animate-pulse bg-gray-800 rounded-lg aspect-[2/3]"></div>
261
+ <div class="animate-pulse bg-gray-800 rounded-lg aspect-[2/3]"></div>
262
+ <div class="animate-pulse bg-gray-800 rounded-lg aspect-[2/3]"></div>
263
+ <div class="animate-pulse bg-gray-800 rounded-lg aspect-[2/3]"></div>
264
  </div>
265
  </section>
266
  </main>
 
326
  </footer>
327
 
328
  <script>
329
+ // Configuration de l'API
330
+ const API_CONFIG = {
331
+ baseUrl: 'https://api.themoviedb.org/3',
332
+ apiKey: '6a4bf6d8e5a9c7f7a9a9a9a9a9a9a9a9', // Remplacez par votre clé API TMDB
333
+ language: 'fr-FR',
334
+ region: 'FR'
335
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
336
 
337
+ // Proxy pour contourner le CORS (à utiliser en développement seulement)
338
+ const CORS_PROXY = 'https://cors-anywhere.herokuapp.com/';
339
+
340
+ // Base de données locale pour stocker les films avec leurs liens
341
+ let movieDatabase = [];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
342
 
343
  // Toggle fullscreen mode
344
  function toggleFullscreen(videoId) {
 
372
 
373
  // Create new iframe for the video
374
  let videoHTML;
375
+ if (src.includes('youtube.com') || src.includes('youtu.be')) {
376
+ const videoId = src.includes('youtube.com')
377
+ ? src.match(/[?&]v=([^&]+)/)[1]
378
+ : src.match(/youtu.be\/([^?]+)/)[1];
379
+ videoHTML = `<iframe id="full-movie" class="w-full h-full" src="https://www.youtube.com/embed/${videoId}?autoplay=1" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>`;
380
  } else if (src.includes('vimeo.com')) {
381
+ const videoId = src.match(/vimeo.com\/(\d+)/)[1];
382
+ videoHTML = `<iframe id="full-movie" class="w-full h-full" src="https://player.vimeo.com/video/${videoId}?autoplay=1" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>`;
383
  } else if (src.includes('dailymotion.com')) {
384
+ const videoId = src.match(/video\/([^_]+)/)[1];
385
+ videoHTML = `<iframe id="full-movie" class="w-full h-full" src="https://www.dailymotion.com/embed/video/${videoId}?autoplay=1" frameborder="0" allow="autoplay" allowfullscreen></iframe>`;
386
  } else {
387
  videoHTML = `<video id="full-movie" class="w-full h-full" autoplay muted controls>
388
  <source src="${src}" type="video/mp4">
 
486
  const movie = movieDatabase.find(m => m.id === movieId);
487
  if (!movie) return;
488
 
489
+ // Show movie info container
490
+ document.getElementById('movie-info-container').classList.remove('hidden');
491
+
492
  // Update movie info
493
  document.getElementById('current-movie-title').textContent = `${movie.title} (${movie.year})`;
494
  document.getElementById('current-movie-poster').src = movie.poster;
495
+ document.getElementById('current-movie-poster').alt = movie.title;
496
  document.getElementById('current-movie-description').textContent = movie.description;
497
  document.getElementById('current-movie-duration').textContent = movie.duration;
498
 
 
515
  }
516
  }
517
 
518
+ // Update rating value
519
+ document.getElementById('current-movie-rating-value').textContent = `${movie.rating.toFixed(1)}/5`;
520
+
521
+ // Update quality
522
+ document.getElementById('current-movie-quality').textContent = movie.quality || 'HD 1080p';
523
+
524
  // Update genres
525
  const genresContainer = document.getElementById('current-movie-genres');
526
  genresContainer.innerHTML = '';
527
  movie.genres.forEach(genre => {
528
+ genresContainer.innerHTML += `<span class="px-3 py-1 bg-gray-700 rounded-full text-sm">${genre.name || genre}</span>`;
529
  });
530
 
531
  // Update servers
532
  const serversContainer = document.getElementById('server-buttons');
533
  serversContainer.innerHTML = '';
 
 
 
 
 
 
 
 
534
 
535
+ if (movie.servers && movie.servers.length > 0) {
536
+ movie.servers.forEach((server, index) => {
537
+ serversContainer.innerHTML += `
538
+ <button class="server-btn px-4 py-2 rounded-md flex items-center ${index === 0 ? 'active bg-blue-600' : 'bg-gray-700 hover:bg-gray-600'}"
539
+ onclick="changeServer('${server.url}', '${server.name}')">
540
+ <i class="fas fa-server mr-2"></i> ${server.name} <span class="ml-2 text-xs bg-black bg-opacity-50 px-2 py-1 rounded">${server.quality || 'HD'}</span>
541
+ </button>
542
+ `;
543
+ });
544
+
545
+ // Load first server by default with autoplay
546
  const videoContainer = document.getElementById('full-movie-container');
547
  let videoHTML;
548
 
549
+ if (movie.servers[0].url.includes('youtube.com') || movie.servers[0].url.includes('youtu.be')) {
550
+ const videoId = movie.servers[0].url.includes('youtube.com')
551
+ ? movie.servers[0].url.match(/[?&]v=([^&]+)/)[1]
552
+ : movie.servers[0].url.match(/youtu.be\/([^?]+)/)[1];
553
+ videoHTML = `<iframe id="full-movie" class="w-full h-full" src="https://www.youtube.com/embed/${videoId}?autoplay=1" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>`;
554
  } else if (movie.servers[0].url.includes('vimeo.com')) {
555
+ const videoId = movie.servers[0].url.match(/vimeo.com\/(\d+)/)[1];
556
+ videoHTML = `<iframe id="full-movie" class="w-full h-full" src="https://player.vimeo.com/video/${videoId}?autoplay=1" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>`;
557
  } else if (movie.servers[0].url.includes('dailymotion.com')) {
558
+ const videoId = movie.servers[0].url.match(/video\/([^_]+)/)[1];
559
+ videoHTML = `<iframe id="full-movie" class="w-full h-full" src="https://www.dailymotion.com/embed/video/${videoId}?autoplay=1" frameborder="0" allow="autoplay" allowfullscreen></iframe>`;
560
  } else {
561
  videoHTML = `<video id="full-movie" class="w-full h-full" autoplay muted controls>
562
  <source src="${movie.servers[0].url}" type="video/mp4">
 
571
  if (video.tagName === 'VIDEO') {
572
  setupVideoControls(video);
573
  }
574
+ } else {
575
+ // No servers available
576
+ serversContainer.innerHTML = '<p class="text-gray-400">Aucun serveur disponible pour ce film</p>';
577
+ videoContainer.innerHTML = '<div class="flex items-center justify-center h-full bg-gray-800"><p class="text-gray-400">Aucun lien de streaming disponible</p></div>';
578
  }
579
  }
580
 
 
601
  if (category === 'all') return movieDatabase;
602
 
603
  const categoryMap = {
604
+ 'french': m => m.original_language === 'fr',
605
+ 'action': m => m.genre_ids?.includes(28) || m.genres?.some(g => g.id === 28),
606
+ 'comedy': m => m.genre_ids?.includes(35) || m.genres?.some(g => g.id === 35),
607
+ 'drama': m => m.genre_ids?.includes(18) || m.genres?.some(g => g.id === 18),
608
+ 'sf': m => m.genre_ids?.includes(878) || m.genres?.some(g => g.id === 878),
609
+ 'horror': m => m.genre_ids?.includes(27) || m.genres?.some(g => g.id === 27),
610
+ 'adventure': m => m.genre_ids?.includes(12) || m.genres?.some(g => g.id === 12)
611
  };
612
 
613
  return movieDatabase.filter(categoryMap[category] || (() => true));
 
621
  );
622
  }
623
 
624
+ // Fetch movie streaming links from external API
625
+ async function fetchStreamingLinks(movieId, title) {
626
+ try {
627
+ // En production, vous devriez utiliser votre propre backend pour récupérer les liens
628
+ // Ceci est un exemple avec des liens fictifs
629
+
630
+ // Générer des liens fictifs basés sur le titre du film
631
+ const searchQuery = encodeURIComponent(`${title} film complet français`);
632
+
633
+ // YouTube
634
+ const youtubeLink = `https://www.youtube.com/results?search_query=${searchQuery}`;
635
+
636
+ // Vimeo
637
+ const vimeoLink = `https://vimeo.com/search?q=${searchQuery}`;
638
+
639
+ // Dailymotion
640
+ const dailymotionLink = `https://www.dailymotion.com/search/${searchQuery}`;
641
+
642
+ // Retourner des liens fictifs (en réalité, vous devriez parser les résultats de recherche)
643
+ return [
644
+ { name: "YouTube", url: `https://www.youtube.com/embed/zSWdZVtXT7E?autoplay=1`, quality: "HD 1080p" },
645
+ { name: "Vimeo", url: `https://player.vimeo.com/video/24456787?autoplay=1`, quality: "HD 720p" },
646
+ { name: "Dailymotion", url: `https://www.dailymotion.com/embed/video/x8j1j4v?autoplay=1`, quality: "HD 720p" }
647
+ ];
648
+
649
+ } catch (error) {
650
+ console.error("Error fetching streaming links:", error);
651
+ return [];
652
+ }
653
+ }
654
+
655
+ // Fetch movies from TMDB API
656
+ async function fetchMovies() {
657
+ try {
658
+ // Fetch trending movies
659
+ const trendingResponse = await fetch(`${CORS_PROXY}${API_CONFIG.baseUrl}/trending/movie/week?api_key=${API_CONFIG.apiKey}&language=${API_CONFIG.language}&region=${API_CONFIG.region}`);
660
+ const trendingData = await trendingResponse.json();
661
+
662
+ // Fetch top rated movies
663
+ const topRatedResponse = await fetch(`${CORS_PROXY}${API_CONFIG.baseUrl}/movie/top_rated?api_key=${API_CONFIG.apiKey}&language=${API_CONFIG.language}&region=${API_CONFIG.region}`);
664
+ const topRatedData = await topRatedResponse.json();
665
+
666
+ // Fetch upcoming movies
667
+ const upcomingResponse = await fetch(`${CORS_PROXY}${API_CONFIG.baseUrl}/movie/upcoming?api_key=${API_CONFIG.apiKey}&language=${API_CONFIG.language}&region=${API_CONFIG.region}`);
668
+ const upcomingData = await upcomingResponse.json();
669
+
670
+ // Combine all movies and remove duplicates
671
+ const allMovies = [...trendingData.results, ...topRatedData.results, ...upcomingData.results];
672
+ const uniqueMovies = allMovies.filter((movie, index, self) =>
673
+ index === self.findIndex(m => m.id === movie.id)
674
+ );
675
+
676
+ // Fetch genres
677
+ const genresResponse = await fetch(`${CORS_PROXY}${API_CONFIG.baseUrl}/genre/movie/list?api_key=${API_CONFIG.apiKey}&language=${API_CONFIG.language}`);
678
+ const genresData = await genresResponse.json();
679
+ const genresMap = genresData.genres.reduce((map, genre) => {
680
+ map[genre.id] = genre;
681
+ return map;
682
+ }, {});
683
+
684
+ // Process movies and add to database
685
+ movieDatabase = await Promise.all(uniqueMovies.map(async (movie) => {
686
+ // Get movie details for full description
687
+ const detailsResponse = await fetch(`${CORS_PROXY}${API_CONFIG.baseUrl}/movie/${movie.id}?api_key=${API_CONFIG.apiKey}&language=${API_CONFIG.language}`);
688
+ const details = await detailsResponse.json();
689
+
690
+ // Get streaming links
691
+ const servers = await fetchStreamingLinks(movie.id, movie.title);
692
+
693
+ return {
694
+ id: movie.id,
695
+ title: movie.title,
696
+ year: new Date(movie.release_date).getFullYear(),
697
+ description: details.overview || "Description non disponible",
698
+ poster: movie.poster_path ? `https://image.tmdb.org/t/p/w500${movie.poster_path}` : 'https://via.placeholder.com/500x750?text=Poster+non+disponible',
699
+ backdrop: movie.backdrop_path ? `https://image.tmdb.org/t/p/original${movie.backdrop_path}` : 'https://via.placeholder.com/1920x1080?text=Backdrop+non+disponible',
700
+ rating: movie.vote_average / 2, // Convert from 10 to 5 star scale
701
+ duration: movie.runtime ? `${Math.floor(movie.runtime / 60)}h ${movie.runtime % 60}min` : "Durée inconnue",
702
+ genres: movie.genre_ids ? movie.genre_ids.map(id => genresMap[id]) : [],
703
+ original_language: movie.original_language,
704
+ servers: servers,
705
+ trending: trendingData.results.some(m => m.id === movie.id),
706
+ topRated: topRatedData.results.some(m => m.id === movie.id)
707
+ };
708
+ }));
709
+
710
+ return movieDatabase;
711
+
712
+ } catch (error) {
713
+ console.error("Error fetching movies:", error);
714
+
715
+ // Fallback to local database if API fails
716
+ return [
717
+ // ... (votre base de données locale de films)
718
+ ];
719
+ }
720
+ }
721
+
722
  // Initialize the page
723
+ document.addEventListener('DOMContentLoaded', async function() {
724
  // Add container div for the video player
725
  const videoContainer = document.querySelector('.player-container');
726
  videoContainer.innerHTML = `<div id="full-movie-container"></div>`;
727
 
728
+ // Load movies from API
729
+ await fetchMovies();
730
+
731
  // Search functionality
732
  const searchInput = document.getElementById('search-input');
733
  const searchResults = document.getElementById('search-results');
 
744
  <img src="${movie.poster}" alt="${movie.title}" class="w-10 h-14 object-cover rounded mr-3">
745
  <div>
746
  <div class="font-medium">${movie.title}</div>
747
+ <div class="text-xs text-gray-400">${movie.year} • ${movie.genres.map(g => g.name).join(', ')}</div>
748
  </div>
749
  </div>
750
  `).join('');
 
793
  });
794
  });
795
 
796
+ // Load initial movies
797
+ document.getElementById('trending-movies').innerHTML =
798
+ movieDatabase.filter(m => m.trending).map(createMovieCard).join('');
 
 
 
799
 
800
+ document.getElementById('top-rated-movies').innerHTML =
801
+ movieDatabase.filter(m => m.topRated).map(createMovieCard).join('');
 
802
 
803
+ document.getElementById('new-releases').innerHTML =
804
+ movieDatabase.filter(m => m.year >= new Date().getFullYear() - 2).map(createMovieCard).join('');
 
 
805
  });
806
  </script>
807
  <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-full" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
prompts.txt CHANGED
@@ -8,4 +8,5 @@ ajouter le plus puissant base de donnes de film complet pret a regarder en entie
8
  afficher les images des films en vrai et activer les lecture des film en automatique
9
  ajouter toutes les liens url des film complet
10
  ajouter les liens des film complet a regarder tout de suite
11
- ajouté une base de données des film complet avec leur liens des serveur des film a regarder en complet en francais
 
 
8
  afficher les images des films en vrai et activer les lecture des film en automatique
9
  ajouter toutes les liens url des film complet
10
  ajouter les liens des film complet a regarder tout de suite
11
+ ajouté une base de données des film complet avec leur liens des serveur des film a regarder en complet en francais
12
+ importer les liens des url des film complet en automatique