Commit Graph

5 Commits

Author SHA1 Message Date
fe9dd9aba6 ♻️ refactor(pmowebrenderer): factoriser handlers et supprimer duplications
- Remplacer les Arc+Box::pin manuels par la macro action_handler!(captures(...))
- Supprimer helpers locaux dupliqués dans renderer.rs (add_var, add_action)
- Extraire handlers génériques pour GET requests
- Factoriser extraction metadata dans set_uri_handler /set_next_uriHandler  
- Simplifier build_renderingcontrol en retirant pipeline inutile
- Mettre à jour edition Rust de 2021 vers 2024 dans tous les Cargo.toml
- Corriger pattern matching inutile `ref` sur déréférencement dans pmoaudio et pmoflac
2026-04-05 14:09:46 +02:00
89f315052b Add pmocache dependency and update cache implementation
This commit adds the pmocache dependency to support enhanced caching functionality and updates the cache implementation to use the new cache routing system. It also includes logging improvements for cover fetching operations.
2026-01-23 19:10:48 +01:00
5c5e1d534b feat: Implémentation complète de la source Radio France avec intégration UPnP et serveur HTTP
Ajout de la source Radio France avec :
- Implémentation du trait MusicSource pour l'intégration UPnP
- Routes HTTP API REST pour l'accès aux stations et flux AAC
- Proxy streaming avec tracking des connexions
- Génération dynamique de l'arborescence UPnP
- Cache multi-niveaux (stations, métadonnées, covers)
- Support des ~70 stations (standalone, groupes, radios ICI)

Fichiers créés :
- pmoradiofrance/src/source.rs (implémentation MusicSource)
- pmoradiofrance/src/server_ext.rs (routes HTTP et proxy streaming)
- pmoradiofrance/assets/radiofrance-logo.webp (logo placeholder)

Fichiers modifiés :
- pmoradiofrance/src/lib.rs (re-exports et modules)
- pmoradiofrance/Cargo.toml (dépendances server)
- Cargo.toml (workspace)
- pmomediaserver/Cargo.toml (feature radiofrance)
- PMOMusic/Cargo.toml (feature radiofrance)
- PMOMusic/src/main.rs (enregistrement automatique)

Tests et validation : compilation OK, pattern respecté, feature-gating cohérent
2026-01-23 12:20:43 +01:00
8adccaa2df feat: implémente client stateful et support playlist UPnP
Ajout d'un client stateful avec gestion automatique du cache pour les stations et métadonnées live.

Fonctionnalités principales :
- Client stateful avec cache à deux niveaux (stations 7 jours, métadonnées TTL dynamique)
- Support des playlists UPnP avec structures StationGroups et StationPlaylist
- Gestion intelligente du TTL respectant delayToRefresh de l'API
- Intégration avec pmoconfig pour le caching des stations
- Support des covers via pmocovers avec fallback sur URLs Pikapi
- Doctests compilés avec contexte async complet
- Feature playlist avec dépendance pmodidl

Corrections et améliorations :
- Ajout d'un variant Error::Config pour conversion automatique
- Gestion propre des erreurs avec conversion anyhow::Error
- Tests unitaires et d'intégration (26/26 passés)
- Optimisations : pooling de connexions HTTP, préchargement intelligent

Les stations sont organisées hiérarchiquement : standalone, groupes avec webradios, radios locales ICI (ex-France Bleu)
Les métadonnées sont mises à jour dynamiquement avec respect des intervalles de polling
2026-01-22 23:50:41 +01:00
e10f217385 feat(pmoradiofrance): implémentation complète du client Radio France
Cette mise à jour implémente complètement le client Radio France avec :

- Découverte dynamique des stations (principales, webradios et locales)
- Accès aux métadonnées live via l'API publique
- Gestion des flux audio HiFi (AAC 192 kbps, HLS)
- Support du cache des stations avec TTL configurable
- Extension de configuration pour pmoconfig
- Exemples d'utilisation et tests d'intégration

Les stations découvertes incluent : France Inter, France Info, France Culture, France Musique, FIP, Mouv', France Bleu (locales), et leurs variantes webradios respectives.

Les fonctionnalités incluent :
- Récupération des métadonnées live (émission en cours, producteur, visuels)
- Accès aux flux audio HiFi
- Gestion intelligente des rafraîchissements via delayToRefresh
- Cache des listes de stations avec TTL configurable (7 jours par défaut)

Les tests d'intégration couvrent : découverte des stations, métadonnées live, flux audio, cache, et gestion des erreurs.
2026-01-22 22:00:40 +01:00