From efb59315e9987fc690e3839fa898bdef8f0b378c Mon Sep 17 00:00:00 2001 From: "alterwain@protonmail.com" <alterwain@protonmail.com> Date: Sun, 23 Feb 2025 19:16:16 +0300 Subject: [PATCH] 0.1.94 upd --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/artworkdb.rs | 23 +++++++++++++++++++++-- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 98131ba..d501999 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -90,7 +90,7 @@ checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "itunesdb" -version = "0.1.92" +version = "0.1.94" dependencies = [ "bincode", "env_logger", diff --git a/Cargo.toml b/Cargo.toml index 4778714..ad44d1c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "itunesdb" -version = "0.1.93" +version = "0.1.94" edition = "2021" authors = ["alterwain"] diff --git a/src/artworkdb.rs b/src/artworkdb.rs index 5119181..19c6c9b 100644 --- a/src/artworkdb.rs +++ b/src/artworkdb.rs @@ -220,6 +220,17 @@ pub mod serializer { pub mod aobjects { use log::info; use crate::artworkdb::objects::{ChunkHeader, DataSet, Database, ImageFile, ImageItem, ImageName, LocationTag}; + + + fn get_hi_from_cover_hash(v: u64) -> u32 { + let hi32 = (v >> 32) as u32; + hi32 + } + + fn get_lo_from_cover_hash(v: u64) -> u32 { + let lo32 = v as u32; + lo32 + } #[derive(Debug, serde::Serialize)] pub struct ADatabase { @@ -232,6 +243,14 @@ pub mod aobjects { pub(crate) fn find_dataset(&mut self, p0: u32) -> &mut ADataSet { self.children.iter_mut().find(|d| d.data.data_type == p0).unwrap() } + + pub fn if_cover_present(&mut self, cover_hash: u64) -> bool { + let ds = self.find_dataset(1); + let image_items = &ds.child; + let hi = get_hi_from_cover_hash(cover_hash); + let lo = get_lo_from_cover_hash(cover_hash); + image_items.iter().any(|i| i.data.as_ref().unwrap().original_date == hi && i.data.as_ref().unwrap().digitized_date == lo) + } pub fn add_images(&mut self, song_dbid: u64, cover_hash: u64) -> (String, String) { let ds = self.find_dataset(1); @@ -244,8 +263,8 @@ pub mod aobjects { unknown4: 0, rating: 0, unknown6: 0, - original_date: 0, - digitized_date: 0, + original_date: get_hi_from_cover_hash(cover_hash), + digitized_date: get_lo_from_cover_hash(cover_hash), source_image_size: 0 };