diff options
Diffstat (limited to 'src/queue.rs')
| -rw-r--r-- | src/queue.rs | 11 |
1 files changed, 11 insertions, 0 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(|| { |
