0.1.60 upd

This commit is contained in:
Michael Wain 2025-02-20 19:47:23 +03:00
parent cf343eab92
commit bca2e1ee77
2 changed files with 24 additions and 2 deletions

View File

@ -1,6 +1,6 @@
[package]
name = "itunesdb"
version = "0.1.59"
version = "0.1.60"
edition = "2021"
authors = ["alterwain"]

View File

@ -188,7 +188,7 @@ impl XDatabase {
self.children.iter_mut().find(|d| d.data.data_type == data_type).unwrap()
}
pub fn remove_track(&mut self, unique_id: u32) {
pub fn remove_track_completely(&mut self, unique_id: u32) {
if let XSomeList::TrackList(tracks) = &mut self.find_dataset(1).child {
tracks.retain_mut(|t| t.data.unique_id != unique_id);
}
@ -211,6 +211,28 @@ impl XDatabase {
}
}
}
pub fn remove_track(&mut self, unique_id: u32, playlist_id: u64) {
if let XSomeList::Playlists(playlists) = &mut self.find_dataset(2).child {
for playlist in playlists.iter_mut() {
if playlist.data.persistent_playlist_id != playlist_id { continue }
let mut s = playlist.elems.len();
playlist.elems.retain_mut(|t| t.0.track_id != unique_id);
s -= playlist.elems.len();
playlist.data.playlist_item_count -= (s as u32);
}
}
if let XSomeList::Playlists(playlists) = &mut self.find_dataset(3).child {
for playlist in playlists.iter_mut() {
if playlist.data.persistent_playlist_id != playlist_id { continue }
let mut s = playlist.elems.len();
playlist.elems.retain_mut(|t| t.0.track_id != unique_id);
s -= playlist.elems.len();
playlist.data.playlist_item_count -= (s as u32);
}
}
}
pub fn get_playlists(&mut self) -> Vec<XPlaylist> {
let mut res_pls = Vec::new();