From d012f88cb51c94d8c97420d8472efbef88a1fca6 Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 12 Apr 2025 13:08:34 -0400 Subject: [PATCH] Refactor --- src/lib.rs | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index e8b9ce9..846f80e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -18,6 +18,15 @@ mod meta_nouveaou { match t { meta_type::Type::Title => match new_meta(&filepath) { Ok(metaa) => { + match get_val(t, metaa.tags) { + Ok(val) => { + return Ok(val); + } + Err(err) => { + return Err(err); + } + } + /* for item in metaa.tags { if item.0 == "TITLE" { return Ok(item.1); @@ -28,6 +37,7 @@ mod meta_nouveaou { std::io::ErrorKind::InvalidData, "Tag not found", )) + */ } Err(err) => Err(err), }, @@ -44,6 +54,34 @@ mod meta_nouveaou { } } + fn get_type(t: meta_type::Type) -> Result { + match t { + meta_type::Type::Title => Ok("TITLE".to_string()), + meta_type::Type::Artist => Ok("ARTIST".to_string()), + meta_type::Type::Album => Ok("".to_string()), + meta_type::Type::Genre => Ok("".to_string()), + meta_type::Type::Year => Ok("".to_string()), + meta_type::Type::Track => Ok("".to_string()), + } + } + + fn get_val( + t: meta_type::Type, + tags: Vec<((String, String))>, + ) -> Result { + let type_ma: String = get_type(t).unwrap(); + for tag in tags { + if tag.0 == type_ma { + return Ok(tag.1); + } + } + + return Err(std::io::Error::new( + std::io::ErrorKind::InvalidInput, + "Invalid", + )); + } + fn new_meta(filepath: &String) -> Result { let path = std::path::Path::new(&filepath); metadata::MediaFileMetadata::new(&path)