link
This commit is contained in:
1 parent
c422878493
commit
3b9bcb1169
5 files changed
+264
-206
No files matched your search
+95
-91
@@ -22,115 +22,119 @@ use db::Database;
|
||||
fn main() -> rekordcrate::Result<()> {
|
||||
let db = Database::load_from_pdb("ntr.pdb")?;
|
||||
println!("tracks: {}, playlists: {}", db.tracks.len(), db.nodes.len());
|
||||
println!("tables: {:?}", db.header);
|
||||
println!("tables: {:?}", db.header.tables);
|
||||
|
||||
for n in db.nodes {
|
||||
println!("{:?}", n);
|
||||
}
|
||||
db.export(&Path::new("./data/output.pdb"))?;
|
||||
|
||||
let (_first_id, first) = db.tracks.first_key_value().unwrap();
|
||||
let (_last_id, last) = db.tracks.last_key_value().unwrap();
|
||||
|
||||
println!("{:?}", first);
|
||||
println!("{:?}", last);
|
||||
|
||||
// let pic = db.tracks.iter().find(|(_id, t)| t.artwork_id == ArtworkId(680));
|
||||
// match pic {
|
||||
// Some(it) => println!("{:?}", it),
|
||||
// None => println!("wasnt there"),
|
||||
// for n in db.nodes {
|
||||
// println!("{:?}", n);
|
||||
// }
|
||||
|
||||
create_dir_all("./data/PIONEER")?;
|
||||
// let (_first_id, first) = db.tracks.first_key_value().unwrap();
|
||||
// let (_last_id, last) = db.tracks.last_key_value().unwrap();
|
||||
|
||||
assert!(env::set_current_dir(&Path::new("./data")).is_ok());
|
||||
// println!("{:?}", first);
|
||||
// println!("{:?}", last);
|
||||
|
||||
// strip the leading slash of the path to make it relative
|
||||
let anlz = first.analyze_path.clone().into_string()?;
|
||||
let anlz = anlz.strip_prefix("/").unwrap();
|
||||
let mp3 = first.file_path.clone().into_string()?;
|
||||
let mp3 = mp3.strip_prefix("/").unwrap();
|
||||
// // let pic = db.tracks.iter().find(|(_id, t)| t.artwork_id == ArtworkId(680));
|
||||
// // match pic {
|
||||
// // Some(it) => println!("{:?}", it),
|
||||
// // None => println!("wasnt there"),
|
||||
// // }
|
||||
|
||||
println!("mp3={:?} exists={:?}", mp3, exists(mp3));
|
||||
println!("anlz={:?} exists={:?}", anlz, exists(anlz));
|
||||
// create_dir_all("./data/PIONEER")?;
|
||||
|
||||
let filename = "a680_m.jpg";
|
||||
// assert!(env::set_current_dir(&Path::new("./data")).is_ok());
|
||||
|
||||
for entry in WalkDir::new(".") // start from current directory
|
||||
.into_iter()
|
||||
.filter_map(Result::ok)
|
||||
.filter(|e| e.file_type().is_file())
|
||||
{
|
||||
if entry.file_name() == filename {
|
||||
println!("Found: {}", entry.path().display());
|
||||
}
|
||||
}
|
||||
// // strip the leading slash of the path to make it relative
|
||||
// let anlz = first.analyze_path.clone().into_string()?;
|
||||
// let anlz = anlz.strip_prefix("/").unwrap();
|
||||
// let mp3 = first.file_path.clone().into_string()?;
|
||||
// let mp3 = mp3.strip_prefix("/").unwrap();
|
||||
|
||||
// println!("mp3={:?} exists={:?}", mp3, exists(mp3));
|
||||
// println!("anlz={:?} exists={:?}", anlz, exists(anlz));
|
||||
|
||||
// let filename = "a680_m.jpg";
|
||||
|
||||
// for entry in WalkDir::new(".") // start from current directory
|
||||
// .into_iter()
|
||||
// .filter_map(Result::ok)
|
||||
// .filter(|e| e.file_type().is_file())
|
||||
// {
|
||||
// if entry.file_name() == filename {
|
||||
// println!("Found: {}", entry.path().display());
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
let first_table = db.header.tables.first();
|
||||
println!("first_table={:?}", first_table);
|
||||
// let first_table = db.header.tables.first();
|
||||
// println!("first_table={:?}", first_table);
|
||||
|
||||
// let mut export = Header::default();
|
||||
// // let tracks = Table { page_type: PageType::Tracks, first_page: 0}
|
||||
// // println!("export={:?}", export);
|
||||
|
||||
// let track_table = Table {
|
||||
// page_type: PageType::Tracks,
|
||||
// first_page: PageIndex(1),
|
||||
// last_page: PageIndex(1),
|
||||
// empty_candidate: 2,
|
||||
// };
|
||||
|
||||
// let tracks = vec![first, last];
|
||||
|
||||
// // let track_page = Page {
|
||||
// // page_index: PageIndex(1),
|
||||
// // page_type: PageType::Tracks,
|
||||
// // next_page: PageIndex(2),
|
||||
// // unknown1: 12,
|
||||
// // unknown2: 0,
|
||||
// // num_rows_small: 5,
|
||||
// // unknown3: 160,
|
||||
// // unknown4: 0,
|
||||
// // page_flags: PageFlags(36),
|
||||
// // free_size: 2302,
|
||||
// // used_size: 1740,
|
||||
// // unknown5: 1,
|
||||
// // num_rows_large: 4,
|
||||
// // unknown6: 0,
|
||||
// // unknown7: 0,
|
||||
// // row_groups: vec![row_groups],
|
||||
// // };
|
||||
// let mut row_group = RowGroup::default();
|
||||
|
||||
// println!("track_table={:?}", track_table);
|
||||
// export.tables.push(track_table);
|
||||
|
||||
let mut export = Header::default();
|
||||
// let tracks = Table { page_type: PageType::Tracks, first_page: 0}
|
||||
// println!("export={:?}", export);
|
||||
|
||||
let track_table = Table {
|
||||
page_type: PageType::Tracks,
|
||||
first_page: PageIndex(1),
|
||||
last_page: PageIndex(1),
|
||||
empty_candidate: 2,
|
||||
};
|
||||
// db.header.tables.iter().for_each(|t| println!("{:?}", t.page_type));
|
||||
|
||||
let tracks = vec![first, last];
|
||||
// // write header
|
||||
// // write page
|
||||
// // write row_groups
|
||||
|
||||
// let track_page = Page {
|
||||
// page_index: PageIndex(1),
|
||||
// page_type: PageType::Tracks,
|
||||
// next_page: PageIndex(2),
|
||||
// unknown1: 12,
|
||||
// unknown2: 0,
|
||||
// num_rows_small: 5,
|
||||
// unknown3: 160,
|
||||
// unknown4: 0,
|
||||
// page_flags: PageFlags(36),
|
||||
// free_size: 2302,
|
||||
// used_size: 1740,
|
||||
// unknown5: 1,
|
||||
// num_rows_large: 4,
|
||||
// unknown6: 0,
|
||||
// unknown7: 0,
|
||||
// row_groups: vec![row_groups],
|
||||
// };
|
||||
let mut row_group = RowGroup::default();
|
||||
// // // Add tables to header
|
||||
// // export.tables.push(track_table);
|
||||
// // export.tables.push(playlist_tree_table);
|
||||
// // export.tables.push(playlist_entries_table);
|
||||
// // export.tables.push(artwork_table);
|
||||
|
||||
println!("track_table={:?}", track_table);
|
||||
export.tables.push(track_table);
|
||||
// // println!("Created PDB header with {} tables:", export.tables.len());
|
||||
// // println!(" - {} tracks", db.tracks.len());
|
||||
// // println!(" - {} playlist nodes", db.nodes.len());
|
||||
// // println!(" - {} playlist entries", db.entries.values().map(|v| v.len()).sum::<usize>());
|
||||
|
||||
println!("export={:?}", export);
|
||||
|
||||
db.header.tables.iter().for_each(|t| println!("{:?}", t.page_type));
|
||||
|
||||
// write header
|
||||
// write page
|
||||
// write row_groups
|
||||
|
||||
// // Add tables to header
|
||||
// export.tables.push(track_table);
|
||||
// export.tables.push(playlist_tree_table);
|
||||
// export.tables.push(playlist_entries_table);
|
||||
// export.tables.push(artwork_table);
|
||||
|
||||
// println!("Created PDB header with {} tables:", export.tables.len());
|
||||
// println!(" - {} tracks", db.tracks.len());
|
||||
// println!(" - {} playlist nodes", db.nodes.len());
|
||||
// println!(" - {} playlist entries", db.entries.values().map(|v| v.len()).sum::<usize>());
|
||||
|
||||
// for (i, table) in export.tables.iter().enumerate() {
|
||||
// println!(" Table {}: {:?} (pages {}-{})",
|
||||
// i + 1,
|
||||
// table.page_type,
|
||||
// table.first_page.0,
|
||||
// table.last_page.0
|
||||
// );
|
||||
// }
|
||||
// // for (i, table) in export.tables.iter().enumerate() {
|
||||
// // println!(" Table {}: {:?} (pages {}-{})",
|
||||
// // i + 1,
|
||||
// // table.page_type,
|
||||
// // table.first_page.0,
|
||||
// // table.last_page.0
|
||||
// // );
|
||||
// // }
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user