From f35c4efac3061602be89498163b458d65bfc361a Mon Sep 17 00:00:00 2001
From: Antoine Gersant <antoine.gersant@lesforges.org>
Date: Tue, 4 Feb 2025 00:51:10 -0800
Subject: [PATCH] Use id3 duration when available

---
 src/app/formats.rs | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/app/formats.rs b/src/app/formats.rs
index ab6b77f..2a877c4 100644
--- a/src/app/formats.rs
+++ b/src/app/formats.rs
@@ -111,12 +111,11 @@ fn read_id3<P: AsRef<Path>>(path: P) -> Result<SongMetadata, Error> {
 
 fn read_mp3<P: AsRef<Path>>(path: P) -> Result<SongMetadata, Error> {
 	let mut metadata = read_id3(&path)?;
-	let duration = {
+	metadata.duration = metadata.duration.or_else(|| {
 		mp3_duration::from_path(path)
 			.map(|d| d.as_secs() as u32)
 			.ok()
-	};
-	metadata.duration = duration;
+	});
 	Ok(metadata)
 }