Files

247 lines
5.0 KiB
Markdown
Raw Permalink Normal View History

2025-12-13 00:28:40 +01:00
# Minitel Slideshow Tool
**Convertisseur + Serveur Slideshow + Client WebSocket↔Série (tout-en-un)**
Interface graphique Tkinter permettant :
- la **conversion dimages** en fichiers **.vdt** optimisés (encodeur intégré, compatible *pic2jpeg2vdt*)
- un **serveur local WebSocket** pour diaporamas (start/stop/reset indépendants)
- un **client WebSocket ↔ port série** (Minitel)
- une liste de serveurs prédéfinis + saisie manuelle
- un temps daffichage paramétrable
## Démonstration
![Capture d’écran](https://github.com/labbej27/minitel-slideshow-tool/blob/main/capture.png)
2025-12-13 00:28:40 +01:00
---
## Fonctionnalités principales
### Conversion dimages → `.vdt`
- Redimensionnement automatique adapté Minitel (320×240 max)
- Encodage JPEG optimisé ou qualité fixe
- Génération des blocs VDT (header + chunks)
- Prévisualisation hex des premiers octets
### Serveur Slideshow WebSocket
- Diffusion continue dun dossier de `.vdt`
- Serveur en thread dédié
- Commandes start/stop sécurisées
### Client WebSocket ↔ Port série
- Pont bidirectionnel avec keep-alive
- Support de `wss://` via SSL permissif
- Gestion vitesse, parité, databits, stopbits
### Interface graphique Tkinter
- Sélection de serveur prédéfini ou manuel
- Sélection de dossier images et dossier VDT
- Logs détaillés
- Détection automatique des ports série
---
## Installation
### 1. Cloner le dépôt
```sh
2025-12-13 00:37:25 +01:00
git clone https://github.com/labbej27/minitel-slideshow-tool.git
2025-12-13 00:38:59 +01:00
cd minitel-slideshow-tool
2025-12-13 00:28:40 +01:00
```
### 2. Installer les dépendances Python
Avec un environnement virtuel (recommandé) :
```sh
python3 -m venv venv
# Linux / macOS
source venv/bin/activate
# Windows (PowerShell)
venv\Scripts\Activate.ps1
# Windows (cmd)
venv\Scripts\activate.bat
```
Installer les dépendances :
```sh
pip install -r requirements.txt
```
Note : Tkinter est déjà inclus dans Python sur Windows et macOS, et sur la plupart des distributions Linux.
2025-12-13 00:28:40 +01:00
## Utilisation
### 1. Lancer loutil
2025-12-14 00:19:29 +01:00
```sh
2025-12-13 00:28:40 +01:00
python3 minitel_slideshow_tool.py
2025-12-14 00:19:29 +01:00
```
### 2. Convertir des images
2025-12-13 00:28:40 +01:00
- Choisir un dossier dimages
- Choisir un dossier de sortie
- Cliquer Convert Images
### 3. Lancer un serveur Slideshow
2025-12-13 00:28:40 +01:00
- Mettre des .vdt dans le dossier sélectionné
- Définir la durée par image
- Cliquer Start Slideshow Server
- Le serveur écoute par défaut sur :
ws://0.0.0.0:8765
### 4. Se connecter à un serveur WebSocket via Minitel
2025-12-13 00:28:40 +01:00
- Choisir un serveur prédéfini ou entrer une URL
- Sélectionner le port série
- Cliquer Connecter & Enjoy
---
2025-12-13 01:05:42 +01:00
# Compilation en exécutable (standalone)
2025-12-13 00:28:40 +01:00
Loutil peut être compilé en exécutable autonome (sans Python requis sur la machine cible) grâce à PyInstaller.
2025-12-13 00:28:40 +01:00
## Prérequis
- Python 3.14 recommandé
- pip à jour
## Système :
Installer PyInstaller :
2025-12-13 00:28:40 +01:00
```sh
pip install pyinstaller
```
## Compilation simple
Depuis la racine du projet :
2025-12-13 00:28:40 +01:00
```sh
pyinstaller --onefile --windowed minitel_slideshow_tool.py
```
## Options utilisées
```sh
--onefile : génère un seul fichier exécutable
--windowed : supprime la console (recommandé pour Tkinter)
```
Lexécutable sera généré dans :
2025-12-13 00:28:40 +01:00
dist/
2025-12-13 00:28:40 +01:00
## Compilation Windows (recommandée)
```sh
pyinstaller ^
--onefile ^
--windowed ^
--name "MinitelSlideshowTool" ^
minitel_slideshow_tool.py
```
## Résultat :
dist/MinitelSlideshowTool.exe
2025-12-13 00:28:40 +01:00
## Compilation Linux
```sh
pyinstaller \
--onefile \
--windowed \
--name minitel-slideshow-tool \
minitel_slideshow_tool.py
```
### Lexécutable est spécifique à lOS :
2025-12-13 00:28:40 +01:00
Un .exe Windows doit être compilé sous Windows, idem pour Linux/macOS.
2025-12-13 00:28:40 +01:00
## Compilation macOS
```sh
pyinstaller \
--onefile \
--windowed \
--name MinitelSlideshowTool \
minitel_slideshow_tool.py
```
Sur macOS :
2025-12-13 00:28:40 +01:00
Lapplication peut être bloquée par Gatekeeper
2025-12-13 00:28:40 +01:00
Utiliser clic droit → Ouvrir au premier lancement
2025-12-13 00:28:40 +01:00
## Inclusion des dépendances
PyInstaller détecte automatiquement :
2025-12-13 00:28:40 +01:00
- tkinter
- Pillow
- pyserial
- websockets
Si nécessaire (rare), forcer les imports :
```sh
pyinstaller --onefile --windowed \
--hidden-import=serial \
--hidden-import=serial.tools.list_ports \
minitel_slideshow_tool.py
```
## Débogage en cas de problème
- Compiler avec console pour voir les erreurs :
```sh
pyinstaller --onefile minitel_slideshow_tool.py
```
2025-12-13 00:37:25 +01:00
- Lancer ensuite depuis un terminal pour lire les logs.
#### Ports série Permissions
- Linux
Ajouter lutilisateur au groupe dialout :
```bash
sudo usermod -a -G dialout $USER
```
Puis redémarrer la session.
2025-12-13 01:11:58 +01:00
2025-12-13 10:33:12 +01:00
## Licence
2025-12-14 21:49:31 +01:00
Ce projet est libre d'utilisation, de modification et de redistribution
à des fins non commerciales.
Toute utilisation commerciale est interdite sans autorisation explicite
de l'auteur.
Ce projet a été développé à des fins personnelles et éducatives,
en sinspirant de projets existants de la communauté Minitel.
2025-12-14 21:49:31 +01:00
## Crédits / Sources
Ce projet sappuie sur et sinspire des travaux suivants :
- **websocket2minitel** par @cquest
https://github.com/cquest/websocket2minitel
- Code et expérimentations de @NathaanTFM
https://gist.github.com/NathaanTFM/2ca8687f1352b9d840d4f5efc941dd98
2025-12-13 01:11:58 +01:00
---