🔖 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:
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "PMOMusic"
|
name = "PMOMusic"
|
||||||
version = "0.3.32"
|
version = "0.3.33"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
|||||||
@@ -196,7 +196,7 @@ async fn get_renderer_full_snapshot(
|
|||||||
let base_url_str = pmoserver::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);
|
||||||
|
|
||||||
// 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 mut current_track) = snapshot.state.current_track {
|
||||||
if let Some(ref album_art) = current_track.album_art_uri {
|
if let Some(ref album_art) = current_track.album_art_uri {
|
||||||
if let Some(transformed) = transform_cover_url(Some(album_art), &base_url).await {
|
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))
|
Ok(Json(snapshot))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -239,7 +248,7 @@ async fn get_renderer_queue(
|
|||||||
|
|
||||||
// Get base_url from request headers
|
// Get base_url from request headers
|
||||||
let base_url_str = pmoserver::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
|
// Transform cover URLs in all queue items using async version
|
||||||
for item in &mut snapshot.queue.items {
|
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
|
// Si c'est déjà une route locale de notre cache, la transformer en URL absolue
|
||||||
if url.starts_with("/covers/") {
|
if url.starts_with("/covers/") {
|
||||||
|
debug!(url = %url, "Already local cover route");
|
||||||
return Some(base_url.url_for(url));
|
return Some(base_url.url_for(url));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Si c'est une URL de notre instance, la retourner directement
|
// Si c'est une URL de notre instance, la retourner directement
|
||||||
if url.starts_with(&base_url.0) {
|
if url.starts_with(&base_url.0) {
|
||||||
|
debug!(url = %url, "Already our instance URL");
|
||||||
return Some(url.to_string());
|
return Some(url.to_string());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pour les autres URLs, utiliser le mechanisme de proxy standard (comme Qobuz)
|
// 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 {
|
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) => {
|
Err(e) => {
|
||||||
tracing::warn!("Failed to proxy cover URL {}: {}", url, e);
|
tracing::warn!("Failed to proxy cover URL {}: {}", url, e);
|
||||||
Some(url.to_string())
|
Some(url.to_string())
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
0.3.32
|
0.3.33
|
||||||
|
|||||||
Reference in New Issue
Block a user