aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsalmonik <raisersoft@proton.me>2026-05-27 20:52:27 +0200
committersalmonik <raisersoft@proton.me>2026-05-27 20:52:27 +0200
commite6e9b63f9cb7576c74680b919dff7e83dfde5852 (patch)
tree300c533e7bcee80de07f1fd7b2bd059ea093003e
parentAdd internet streams support (diff)
downloadrsplayer-e6e9b63f9cb7576c74680b919dff7e83dfde5852.tar.gz
rsplayer-e6e9b63f9cb7576c74680b919dff7e83dfde5852.zip
fix no metadata songs handling
format string is no longer used to represent songs that have insufficient metadata to fullfill the format string
-rw-r--r--src/queue.rs11
-rw-r--r--tests/queue.rs2
2 files changed, 12 insertions, 1 deletions
diff --git a/src/queue.rs b/src/queue.rs
index 1742a00..3c1c6fa 100644
--- a/src/queue.rs
+++ b/src/queue.rs
@@ -155,6 +155,17 @@ impl Track {
155 } 155 }
156 156
157 pub fn format(&self, format_str: &str) -> String { 157 pub fn format(&self, format_str: &str) -> String {
158 let has_metadata = self.artist.as_ref().is_some_and(|a| !a.is_empty())
159 || self.album.as_ref().is_some_and(|a| !a.is_empty());
160 if !has_metadata {
161 return self.title.clone().unwrap_or_else(|| {
162 self.path
163 .file_name()
164 .and_then(|n| n.to_str())
165 .unwrap_or("Unknown")
166 .to_string()
167 });
168 }
158 let artist = self.artist.clone().unwrap_or_default(); 169 let artist = self.artist.clone().unwrap_or_default();
159 let album = self.album.clone().unwrap_or_default(); 170 let album = self.album.clone().unwrap_or_default();
160 let title = self.title.clone().unwrap_or_else(|| { 171 let title = self.title.clone().unwrap_or_else(|| {
diff --git a/tests/queue.rs b/tests/queue.rs
index 5f4d853..59311d2 100644
--- a/tests/queue.rs
+++ b/tests/queue.rs
@@ -275,7 +275,7 @@ fn test_track_format_variables() {
275#[test] 275#[test]
276fn test_track_format_empty_variables() { 276fn test_track_format_empty_variables() {
277 let t = track_no_meta("/music/test.mp3"); 277 let t = track_no_meta("/music/test.mp3");
278 assert_eq!(t.format("$ARTIST - $TRACK"), " - test.mp3"); 278 assert_eq!(t.format("$ARTIST - $TRACK"), "test.mp3");
279} 279}
280 280
281#[test] 281#[test]