feat: basic tag reading

This commit is contained in:
2026-08-19 16:18:16 +02:00
parent f2c8fa0c24
commit 63fb8890ee
3 changed files with 29 additions and 84 deletions
+2
View File
@@ -1 +1,3 @@
/target /target
*.flac
*.mp3
Generated
-82
View File
@@ -1,82 +0,0 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1786993761,
"narHash": "sha256-1LU+eVzo7NRDq41O60TWWuSfE9nziXuN1AcU0STCR9k=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "8b7dc2ca50dd99ca3af5af1436b06b5adb1e54c9",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs",
"rust-overlay": "rust-overlay",
"utils": "utils"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1787022047,
"narHash": "sha256-wNlYM/obKOkkRELrOfto1JT5CRANR6hB/RjOELp223U=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "b32685dd7c5a965aa8273adb7ddaf7f5b40d0faa",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
}
},
"root": "root",
"version": 7
}
+27 -2
View File
@@ -1,3 +1,28 @@
fn main() { use lofty::file::TaggedFileExt;
println!("Hello, world!"); use lofty::probe::Probe;
use std::env;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let args: Vec<String> = env::args().collect();
if args.len() < 2 {
return Err("Not a file. Usage: music-sort <file_path>".into());
}
let file_path = &args[1];
let tagged_file = Probe::open(file_path)
.expect("ERROR: Bad path provided!")
.read()
.expect("ERROR: Failed to read file!");
let id3v2 = tagged_file.primary_tag();
if let Some(tag) = id3v2 {
for item in tag.items() {
println!("{:?}", item);
}
}
Ok(())
} }