refactor: replace absolute URLs with route-based cover URLs and generalize caching

- Remplacer les appels à `covers_absolute_url_for` par `covers_route_for` pour générer des URLs relatives basées sur les routes
- Introduire le trait `CoverCacheable` pour généraliser le cache des covers (Album, Playlist, Artist, Track)
- Remplacer les fonctions spécifiques (`cache_album_covers`, etc.) par une fonction générique `cache_covers`
- Simplifier le code en unifiant la logique de mise en cache des covers
- Corriger l'initialisation de `PMO_SERVER_URL` pour utiliser `base_url()` (incluant le port) au lieu d'une URL brute
This commit is contained in:
2026-03-24 15:02:14 +01:00
parent 1164a11410
commit 76b7c126c2
5 changed files with 118 additions and 48 deletions

View File

@@ -517,7 +517,7 @@ fn playlist_track_to_response(
}
fn cover_url_from_pk(pk: &str) -> String {
pmocache::covers_absolute_url_for(pk, None)
pmocache::covers_route_for(pk, None)
}
fn normalize_cover_pk(input: Option<String>) -> Option<String> {

View File

@@ -182,7 +182,7 @@ impl ReadHandle {
let _remaining = self.remaining().await?;
// Convertir cover_pk en URL si présent
let album_art = cover_pk.map(|pk| pmocache::covers_absolute_url_for(&pk, None));
let album_art = cover_pk.map(|pk| pmocache::covers_route_for(&pk, None));
Ok(Container {
id: self.playlist.id.clone(),
@@ -253,7 +253,7 @@ impl ReadHandle {
let track_number = meta.get_track_number().await.ok().flatten();
let cover_pk = meta.get_cover_pk().await.ok().flatten();
let cover_url = if let Some(pk) = cover_pk.as_ref() {
Some(pmocache::covers_absolute_url_for(pk, None))
Some(pmocache::covers_route_for(pk, None))
} else {
meta.get_cover_url().await.ok().flatten()
};