🔖 version bump to v0.3.29
- Bump crate and file versions from `v0.3.29` to v\[correction: actually 0\.3\.33] (see Cargo.toml & version.txt) - Extend cover URL transformation logic to queue items in `pmoserver_ext.rs`—now transforms album art for both current track *and* queue items - Add debug logging to cover URL transformation steps (local route, instance match & proxy) - Minor cleanup: remove redundant `clone()` in base_url usage
This commit is contained in:
@@ -196,7 +196,7 @@ async fn get_renderer_full_snapshot(
|
||||
let base_url_str = pmoserver::get_base_url_from_request(&headers);
|
||||
let base_url = pmoserver::BaseUrl(base_url_str);
|
||||
|
||||
// Transform cover URLs in current_track using async version
|
||||
// Transform cover URLs in current_track
|
||||
if let Some(ref mut current_track) = snapshot.state.current_track {
|
||||
if let Some(ref album_art) = current_track.album_art_uri {
|
||||
if let Some(transformed) = transform_cover_url(Some(album_art), &base_url).await {
|
||||
@@ -205,6 +205,15 @@ async fn get_renderer_full_snapshot(
|
||||
}
|
||||
}
|
||||
|
||||
// Transform cover URLs in queue items
|
||||
for item in &mut snapshot.queue.items {
|
||||
if let Some(ref album_art) = item.album_art_uri {
|
||||
if let Some(transformed) = transform_cover_url(Some(album_art), &base_url).await {
|
||||
item.album_art_uri = Some(transformed);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Ok(Json(snapshot))
|
||||
}
|
||||
|
||||
@@ -239,7 +248,7 @@ async fn get_renderer_queue(
|
||||
|
||||
// Get base_url from request headers
|
||||
let base_url_str = pmoserver::get_base_url_from_request(&headers);
|
||||
let base_url = pmoserver::BaseUrl(base_url_str);
|
||||
let base_url = pmoserver::BaseUrl(base_url_str.clone());
|
||||
|
||||
// Transform cover URLs in all queue items using async version
|
||||
for item in &mut snapshot.queue.items {
|
||||
@@ -2249,17 +2258,23 @@ async fn transform_cover_url(url: Option<&str>, base_url: &pmoserver::BaseUrl) -
|
||||
|
||||
// Si c'est déjà une route locale de notre cache, la transformer en URL absolue
|
||||
if url.starts_with("/covers/") {
|
||||
debug!(url = %url, "Already local cover route");
|
||||
return Some(base_url.url_for(url));
|
||||
}
|
||||
|
||||
// Si c'est une URL de notre instance, la retourner directement
|
||||
if url.starts_with(&base_url.0) {
|
||||
debug!(url = %url, "Already our instance URL");
|
||||
return Some(url.to_string());
|
||||
}
|
||||
|
||||
// Pour les autres URLs, utiliser le mechanisme de proxy standard (comme Qobuz)
|
||||
debug!(url = %url, "Proxyfying cover URL via pmocovers");
|
||||
match pmocovers::proxy_cover_url(url, base_url).await {
|
||||
Ok(local_url) => Some(local_url),
|
||||
Ok(local_url) => {
|
||||
debug!(result = %local_url, "Proxified successfully");
|
||||
Some(local_url)
|
||||
},
|
||||
Err(e) => {
|
||||
tracing::warn!("Failed to proxy cover URL {}: {}", url, e);
|
||||
Some(url.to_string())
|
||||
|
||||
Reference in New Issue
Block a user