Mise a jour d'un episode
a la diffusion d'une nouvelle emission, j'ai pas mal de boulot :
depuis lmelp-frontoffice : detection de la nouvelle emission (rafraichir Episodes) - cela telecharge l'enregistrement audio
creation de la transcription (je fais ca manuellement depuis une machine GPU avec whisper), et copie dans docker-lmelp/data/audios
depuis lmelp-frontoffice: Telecharger la transcription (cela va charger le fichier de transcription) (gestion de cache)
depuis lmelp-backoffice - frontend : dans les pages suivantes
- Generation de l'avis critique : (avec un llm) depuis la transcription, cela cree un summary pour cet episode
- Livres et auteurs : extrait les livres/auteurs de l'episode sur la base du summary. metdonnees babelio (il faut au prealable lancer le VPN) pour corriger les titres/auteurs/editeurs
- Identification des critiques : si necessaire pour un nouveau critique
- Liaison babelio : pour lier aux pages auteurs / livres / url de la couverture
- Emissions : visu du resultat de l'emission structuree : toutes les oeuvres doivent etre identifiees, notees
a l'issue de tout cela la base de donnees a ete enrichie avec ce nouvel episode
Passer la nouvelle base vers l'application mobile¶
Le logiciel lmelp-mobile ne change pas, seule la base de données évolue.
Pré-requis¶
- adb est installe
- Le téléphone est branché en USB au laptop
- Le mode USB est sur Transfert de fichiers (pas "Aucun transfert de données")
- Le débogage USB est activé (Paramètres → Options développeur)
- La stack docker-lmelp est démarrée (en suivant Déploiement avec Portainer, les conteneurs
lmelp-mongoetlmelp-exportdoivent tourner)
Commande unique¶
Le script scripts/lmelp-update-mobile.sh (à copier une fois sur le laptop dans ~/bin/) fait tout :
- Redémarre le daemon ADB en mode réseau (
0.0.0.0:5037) - Vérifie qu'un téléphone est connecté
- Vérifie que le container
lmelp-exporttourne - Lance l'export MongoDB → SQLite (avec données Calibre pour le filtre "Lus")
- Vérifie l'intégrité de la base
- Pousse la base sur le téléphone via ADB
- Redémarre l'app Android
Installation du script (une seule fois)¶
Démarrer le container lmelp-export¶
Il y a 3 niveaux selon l'avancement de la configuration :
Niveau 1 — image locale (dev/test) : image buildée localement depuis le repo
# depuis le repo lmelp-mobile
docker build -f Dockerfile.export -t lmelp-mobile-export:local .
docker run -d --name lmelp-export \
--network lmelp-stack_lmelp-network \
--add-host host-gateway:host-gateway \
-v "/home/guillaume/Calibre Library:/calibre:ro" \
-e LMELP_MONGO_URI=mongodb://mongo:27017 \
-e LMELP_CALIBRE_DB=/calibre/metadata.db \
-e LMELP_CALIBRE_VIRTUAL_LIBRARY=guillaume \
-e ADB_HOST=host-gateway \
-e ADB_PORT=5037 \
lmelp-mobile-export:local
Niveau 2 — image ghcr.io (usage normal en attendant docker-lmelp#41) : image publiée automatiquement par la CI, gérée par Watchtower
docker run -d --name lmelp-export \
--network lmelp-stack_lmelp-network \
--add-host host-gateway:host-gateway \
-v "/home/guillaume/Calibre Library:/calibre:ro" \
-e LMELP_MONGO_URI=mongodb://mongo:27017 \
-e LMELP_CALIBRE_DB=/calibre/metadata.db \
-e LMELP_CALIBRE_VIRTUAL_LIBRARY=guillaume \
-e ADB_HOST=host-gateway \
-e ADB_PORT=5037 \
--label "com.centurylinklabs.watchtower.enable=true" \
ghcr.io/castorfou/lmelp-mobile-export:latest
Niveau 3 — intégré à la stack docker-lmelp (cible finale) : le container démarre automatiquement avec docker compose up -d, voir docker-lmelp#41.
En cas de problème ADB¶
Si adb devices ne voit pas le téléphone :
- Vérifier que le mode USB est sur Transfert de fichiers
- Valider la popup "Autoriser le débogage USB" sur le téléphone
- En dernier recours :
adb kill-server && adb -a start-server
Voir aussi docs/dev/build_deploy_apk.md pour le diagnostic complet.