📦 Changelog 8.1

MAJOR 2025-10-28

LUMA Infinity 8.1 — Le Retour de NINO+

Nouveautés — NINO+

  • Nouvelle interface vidéo modernisée et optimisée.
  • Lecteur amélioré : transitions instantanées, raccourcis clavier, gestion volume molette.
  • Lecture fluide d’un épisode à l’autre.
  • Skip intro optimisé (3 secondes).
  • Autoplay avancé avec épisode suivant.
  • Connexion obligatoire pour regarder une vidéo.

Fonctionnalités temporairement désactivées

  • Commentaires
  • Reprise automatique
  • Shorts
  • Profils personnalisés NINO+

Sécurité — LUMA Shield

  • Détection renforcée des scans non autorisés.
  • Nouveaux filtres de requêtes suspectes.
  • Système antispam sur endpoints sensibles.
  • Logs améliorés et traçabilité renforcée.

Comptes & Utilisateurs

  • Refonte UI du module comptes.
  • Gestion avatar plus sécurisée.
  • Messages d’erreurs modernisés.
  • Formulaires plus fluides et ergonomiques.

Améliorations globales

  • Performances générales améliorées.
  • Compatibilité mobile renforcée.
  • Nettoyage des scripts obsolètes.
  • Préparation des versions 8.x.

Watch System & Streaming

  • Nouvelle route /nino/play/:id (player + infos + suggestions).
  • API dynamique /api/nino/videos/:id avec fallback 404 stylé.
  • Streaming natif /stream/play/:id avec support Range (seek fluide).
  • Validation visibilité + ACL : vidéos privées impossibles à lire.
  • Refonte complète des contrôles du player (play, mute, vitesse, PiP, FS).
  • Overlay animée auto-hide (2.5s) + maintien visible en pause.
  • Raccourcis clavier complets (J/L, flèches, espace, M, F, P, ., ,).
  • Click = play/pause, double-click = fullscreen.
  • Volume molette ±5%, volume clavier ±10%.
  • Mode fullscreen optimisé (figure plein écran total).

Structure CSS & Modules JS

  • Dispatch CSS : player-base / controls / progress / overlay / notfound.
  • CSP-friendly : plus aucun inline-style.
  • shortcuts.js → gestion du clavier déportée.
  • notfound.js → UI dynamique si vidéo introuvable.
  • Préparation HLS natif + playlists dynamiques.
  • fetchCurrentVideo externalisé + métadonnées unifiées.

Next Episode System

  • Fusion lecture auto/manuelle → logique unique.
  • window.videoData centralisé → plus de double fetch.
  • Autoplay fluide entre épisodes sans reload.
  • Fullscreen persistant (isFullscreen + enterFullscreen).
  • Animation fade-out 300ms type Netflix.
  • Paramètres URL supportés : ?autoplay=1, ?fs=1.
  • Countdown 5s + bouton annuler + message dynamique.

Thème Nino

  • Nouvelles variables CSS (--nino-bg, --nino-white, --nino-gradient...).
  • Typos Montserrat et Roboto intégrées.
  • Popups warning/home adaptées au thème.
  • Transitions fade-out globales.
  • Palette unifiée pour home + player.

ACL / RBAC — Core

  • RBAC complet : roles, groups, permissions, signatures.
  • Vue SQL v_user_effective_permissions.
  • Caching ACL TTL 1 min.
  • CRUD complet roles/groups/permissions côté admin.
  • Helpers EJS : hasRelease() pour filtrage UI.
  • Audit ACL automatique via logAudit().

Admin Panel / UI

  • Nouvelle vue /admin/rights (rôles, groupes, permissions).
  • Modales CRUD Bootstrap.
  • Gestion groupes utilisateur dans user_edit.js.
  • Notifications notifier.show() harmonisées.
  • UI directement synchronisée avec ACL API.

LUMA Shield / Firewall

  • Refactor complet des tables : luma_bans, whitelist, traffic_log.
  • Middlewares banCheck, trafficGuard, rateLimiter réécrits.
  • Regex patterns renforcés (.env, git, php, vendor...).
  • LogQueue async (100 entries / 2s).
  • Upsert IP automatique (pas de doublons).
  • Préparation ShieldQueue (mémoire + DB).
  • Recommandation : endpoint /unban/:ip + cron 15 min.

Account System — Backend

  • Refonte totale en CRUD.v3.
  • Upload avatar via memoryStorage.
  • Vérification MIME + limite 2Mo + audit logs.
  • Protection requireAuth() + gestion login expiré.
  • Hash bcrypt ×12.
  • Suppression total auth V1/V2 legacy.

Account System — Front

  • Modales dynamiques (avatar, MDP, déconnexion).
  • Preview avatar instantané + cache bust ?v=.
  • Erreurs standardisées (invalid_name, file_size...).
  • Redirect automatique si session expirée.
  • Animations harmonisées + tokens UI unifiés.
  • CSP friendly (aucun inline-style).

État final & Objectifs

  • RBAC : ✔️ Stable
  • ACL : ✔️ Actif
  • Admin : ✔️ Opérationnel
  • Account System : ✔️ Terminé
  • Player : ✔️ Préparé HLS + playlists
  • Prochaines étapes : Shield V2, préférences, multi-qualité, cross-modules ACL.