MovixOpenSource/src
Movix 2045dbd2c9 Nouvelle adresse movix + nouvelles fonctionalités
Modification du Oauth :
Pouvoir manager les apps depuis le panel admin

Correction de l'affichage des images des admins

Majs des urls extension, userscript et premid

Correction d'un crash sur les commentaires

Ajout d'un light mode sur le frontend
2026-05-14 17:26:13 +02:00
..
assets/crypto tird release 2026-04-28 17:55:00 +02:00
components Nouvelle adresse movix + nouvelles fonctionalités 2026-05-14 17:26:13 +02:00
config j'ai oublié de supprimé les fichiers code morts 2026-05-10 16:39:13 +02:00
context Nouvelle adresse movix + nouvelles fonctionalités 2026-05-14 17:26:13 +02:00
data tird release 2026-04-28 17:55:00 +02:00
hooks chore: drop firebase + perf wave + mobile v2.5.3 + uqload HLS + multi-receiver cast + SW gateway 2026-05-10 13:28:51 +02:00
i18n Nouvelle adresse movix + nouvelles fonctionalités 2026-05-14 17:26:13 +02:00
lib tird release 2026-04-28 17:55:00 +02:00
middleware tird release 2026-04-28 17:55:00 +02:00
pages Nouvelle adresse movix + nouvelles fonctionalités 2026-05-14 17:26:13 +02:00
routing chore: drop firebase + perf wave + mobile v2.5.3 + uqload HLS + multi-receiver cast + SW gateway 2026-05-10 13:28:51 +02:00
services j'ai oublié de supprimé les fichiers code morts 2026-05-10 16:39:13 +02:00
styles Nouvelle adresse movix + nouvelles fonctionalités 2026-05-14 17:26:13 +02:00
types j'ai oublié de supprimé les fichiers code morts 2026-05-10 16:39:13 +02:00
utils Nouvelle adresse movix + nouvelles fonctionalités 2026-05-14 17:26:13 +02:00
workers tird release 2026-04-28 17:55:00 +02:00
App.tsx Nouvelle adresse movix + nouvelles fonctionalités 2026-05-14 17:26:13 +02:00
index.css chore: drop firebase + perf wave + mobile v2.5.3 + uqload HLS + multi-receiver cast + SW gateway 2026-05-10 13:28:51 +02:00
main.tsx Nouvelle adresse movix + nouvelles fonctionalités 2026-05-14 17:26:13 +02:00
README.md tird release 2026-04-28 17:55:00 +02:00
vite-env.d.ts tird release 2026-04-28 17:55:00 +02:00

Frontend Movix

Le frontend Movix porte l'expérience utilisateur complète : navigation dans le catalogue, pages détails, lecture vidéo, Live TV, WatchParty, profils, listes partagées, Wishboard, VIP et Wrapped.

Le point important pour contribuer ici : src/App.tsx ne fait pas que router. Il centralise aussi plusieurs comportements transverses, dont la persistance locale et la sync de certains morceaux de localStorage vers POST /api/sync.

Démarrage

cp .env.example .env
npm install
npm run dev

Le serveur Vite écoute sur http://localhost:3000.

Commandes utiles :

npm run lint
npm run build
npm run preview
npm run wasm:watchparty-sync:setup
npm run wasm:watchparty-sync:build

Ce que le frontend gère

  • découverte de films, séries, anime, collections et fiches personnes
  • pages de lecture pour films, séries et anime
  • Live TV et providers annexes
  • WatchParty, création de room, join, liste publique et Sync Pro
  • comptes, auth, profils multiples et sessions
  • listes partagées, suggestions, Wishboard et soumission de liens
  • pages VIP, dons, cadeaux, invoices et Wrapped

Variables d'environnement utiles

Les variables principales sont documentées dans .env.example :

  • VITE_MAIN_API
  • VITE_TMDB_API_KEY
  • VITE_SITE_URL
  • VITE_WATCHPARTY_API
  • VITE_PROXY_BASE_URL
  • VITE_API_PROXY_BASE_URL
  • VITE_PROXIES_EMBED_API
  • VITE_RIVESTREAM_PROXIES
  • VITE_SUPPORT_TELEGRAM_URL
  • VITE_TURNSTILE_SITE_KEY
  • VITE_TURNSTILE_INVISIBLE_SITEKEY

La normalisation des URLs runtime est centralisée dans src/config/runtime.ts.

Architecture

src/
|-- main.tsx                 # Point d'entrée
|-- App.tsx                  # Routing principal + comportements transverses
|-- pages/                   # Une page = une route
|-- components/              # UI et composants métier
|-- context/                 # État global via React Context
|-- services/                # Appels HTTP
|-- hooks/                   # Hooks custom
|-- utils/                   # Helpers
|-- config/                  # Runtime, Firebase, proxies
|-- workers/                 # Web workers, dont WatchParty Sync
|-- i18n/                    # Traductions
`-- components/ui/           # Primitives UI réutilisables

Routes à connaître

Le routeur principal est dans src/App.tsx. Les grandes familles de routes sont :

  • navigation catalogue : /, /movies, /tv-shows, /collections, /movie/:id, /tv/:id
  • lecture : /watch/movie/:tmdbid, /watch/tv/:tmdbid/s/:season/e/:episode, /watch/anime/...
  • social / communautaire : /wishboard, /list/:shareCode, /top10, /wrapped
  • compte / profils / VIP : /profile, /profile-selection, /settings, /vip, /vip/don
  • temps réel : /watchparty/create, /watchparty/join, /watchparty/room/:roomId
  • services annexes : /live-tv, /debrid, /extension, /ftv

État global

Movix n'utilise ni Redux ni Zustand. L'état global passe surtout par React Context, le stockage local et quelques synchronisations backend.

Les contexts à connaître en premier :

  • AuthContext.tsx
  • ProfileContext.tsx
  • SearchContext.tsx
  • VipModalContext.tsx
  • AdFreePopupContext.tsx
  • AdWarningContext.tsx
  • IntroContext.tsx

Où intervenir selon le sujet

  • Auth et persistance : src/App.tsx, src/context/AuthContext.tsx, src/context/ProfileContext.tsx
  • Calls backend : src/services/ puis les pages/composants consommateurs
  • WatchParty : src/pages/WatchParty*.tsx, src/hooks/useWatchParty.ts, src/utils/watchparty.ts, src/workers/watchpartySync.worker.ts
  • Lecture vidéo : src/pages/Watch/ et les composants *Player*
  • Traductions : src/i18n/

Notes de contribution

  • Les imports inutilisés cassent le lint.
  • Certaines features de lecture combinent plusieurs players et plusieurs proxies ; évite les simplifications rapides.
  • Si tu touches une feature transversale, regarde aussi le backend correspondant dans API/Mainapi/ ou API/watchpartyAPI/.