From 7ebf07161ec87bc1edb84ecd76b69f91223177f9 Mon Sep 17 00:00:00 2001 From: Ultradesu Date: Mon, 27 Jul 2026 17:09:33 +0100 Subject: [PATCH] Fixed liked track sorting --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/library/mod.rs | 16 ++++++++++------ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6577838..e0e17e1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1567,7 +1567,7 @@ dependencies = [ [[package]] name = "furumi_tui" -version = "0.1.6" +version = "0.1.7" dependencies = [ "anyhow", "blake3", diff --git a/Cargo.toml b/Cargo.toml index d721084..5d1396c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "furumi_tui" -version = "0.1.7" +version = "0.1.8" edition = "2024" rust-version = "1.97" description = "A federated P2P player for personal music libraries" diff --git a/src/library/mod.rs b/src/library/mod.rs index bf157ba..d31137b 100644 --- a/src/library/mod.rs +++ b/src/library/mod.rs @@ -1201,7 +1201,11 @@ impl Library { .get(&track.id) .copied() .unwrap_or_default(); - (liked_at, track.title.clone(), track) + let stable_key = track + .content_id + .clone() + .unwrap_or_else(|| format!("local:{:020}", track.id)); + (liked_at, stable_key, track) }) .collect(); @@ -1218,11 +1222,11 @@ impl Library { })?; for row in fed_rows { let (liked_at, fed) = row?; - entries.push(( - liked_at, - fed.title.clone(), - crate::federation::pending_track(&fed), - )); + let stable_key = fed + .content_id + .clone() + .unwrap_or_else(|| format!("fed:{}", fed.item_id)); + entries.push((liked_at, stable_key, crate::federation::pending_track(&fed))); } entries.sort_by(|left, right| right.0.cmp(&left.0).then_with(|| left.1.cmp(&right.1))); return Ok(PlaylistDetail {