mirror of
https://github.com/Dangoware/dango-music-player.git
synced 2025-04-19 10:02:53 -05:00
Updated tag parse error handling, fixes #19
This commit is contained in:
parent
6845d34ce7
commit
abfad7587d
1 changed files with 18 additions and 15 deletions
|
@ -460,22 +460,27 @@ impl MusicLibrary {
|
||||||
pub fn add_file(&mut self, target_file: &Path) -> Result<(), Box<dyn Error>> {
|
pub fn add_file(&mut self, target_file: &Path) -> Result<(), Box<dyn Error>> {
|
||||||
let normal_options = ParseOptions::new().parsing_mode(lofty::ParsingMode::Relaxed);
|
let normal_options = ParseOptions::new().parsing_mode(lofty::ParsingMode::Relaxed);
|
||||||
|
|
||||||
// TODO: Fix error handling here
|
|
||||||
let tagged_file = match Probe::open(target_file)?.options(normal_options).read() {
|
|
||||||
Ok(tagged_file) => tagged_file,
|
|
||||||
|
|
||||||
Err(error) => return Err(error.into()),
|
|
||||||
};
|
|
||||||
|
|
||||||
// Ensure the tags exist, if not, insert blank data
|
|
||||||
let blank_tag = &lofty::Tag::new(TagType::Id3v2);
|
let blank_tag = &lofty::Tag::new(TagType::Id3v2);
|
||||||
let tag = match tagged_file.primary_tag() {
|
let tagged_file: lofty::TaggedFile;
|
||||||
Some(primary_tag) => primary_tag,
|
let mut duration = Duration::from_secs(0);
|
||||||
|
let tag = match Probe::open(target_file)?.options(normal_options).read() {
|
||||||
|
Ok(file) => {
|
||||||
|
tagged_file = file;
|
||||||
|
|
||||||
None => match tagged_file.first_tag() {
|
duration = tagged_file.properties().duration();
|
||||||
Some(first_tag) => first_tag,
|
|
||||||
None => blank_tag,
|
// Ensure the tags exist, if not, insert blank data
|
||||||
|
match tagged_file.primary_tag() {
|
||||||
|
Some(primary_tag) => primary_tag,
|
||||||
|
|
||||||
|
None => match tagged_file.first_tag() {
|
||||||
|
Some(first_tag) => first_tag,
|
||||||
|
None => blank_tag,
|
||||||
|
},
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
Err(_) => blank_tag,
|
||||||
};
|
};
|
||||||
|
|
||||||
let mut tags: BTreeMap<Tag, String> = BTreeMap::new();
|
let mut tags: BTreeMap<Tag, String> = BTreeMap::new();
|
||||||
|
@ -525,8 +530,6 @@ impl MusicLibrary {
|
||||||
Err(_) => None,
|
Err(_) => None,
|
||||||
};
|
};
|
||||||
|
|
||||||
let duration = tagged_file.properties().duration();
|
|
||||||
|
|
||||||
// TODO: Fix error handling
|
// TODO: Fix error handling
|
||||||
let binding = fs::canonicalize(target_file).unwrap();
|
let binding = fs::canonicalize(target_file).unwrap();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue