APPLICATION
Windows
Sonic Archive FR — LITE
C'est une application de bureau est construite avec Python + pywebview.
Elle encapsule le site web https://sonicarchive.fr.nf dans une fenêtre native sans bordures (frameless),
avec une interface de contrôle personnalisée superposée.
Le fait d’utiliser l’option superposée vous permet de créer votre propre « Picture in Picture ».
🏗️ Architecture
| Couche | Rôle |
| Python | Lance la fenêtre, expose une API JS↔Python, gère la config JSON |
| pywebview | Crée la fenêtre native OS avec un moteur WebView intégré |
| HTML/CSS/JS embarqué | Interface utilisateur flottante par-dessus l'iframe du site |
| iframe | Charge le site Sonic Archive FR (cookies conservés entre sessions) |
✨ Fonctionnalités
Fenêtre personnalisée (frameless)
- Fenêtre sans barre de titre native — tout est géré manuellement
- Déplacement par drag sur une zone dédiée (à droite de la navbar du site)
- Redimensionnement via 8 poignées invisibles sur tous les bords et coins (N, S, E, W + 4 coins)
- Taille minimale respectée (400×200 px)
Interface UI auto-masquée
- Les contrôles apparaissent au survol de la souris et disparaissent automatiquement après un délai d'inactivité
- Transition en fondu (opacity CSS)
- Le masquage est bloqué quand le modal de réglages est ouvert
Contrôles fenêtre style macOS
- 🔴 Rouge → Fermer l'application
- 🟡 Jaune → Réduire dans la barre des tâches
- 🟢 Vert → Basculer en Mode Cinéma
Mode Cinéma (plein écran)
- Passe en plein écran natif via toggle_fullscreen()
- Masque les poignées de resize et la zone de drag
- Un overlay transparent capte les mouvements de souris pour réafficher l'UI
- Quitter : bouton dédié, touche Échap, ou double-clic
Bouton Accueil
- Recharge la page d'accueil de Sonic Archive FR en un clic (⌂)
Modal de réglages (bouton ⊙)
Panneau flottant avec 3 options persistées :
| Réglage | Description |
| Superposer l'app | Always-on-top : la fenêtre reste au-dessus de toutes les autres |
| Masquage auto | Active/désactive le masquage automatique de l'UI |
| Délai de masquage | Slider de 1 à 6 secondes (défaut 2,5 s) |