feat(discover): add get_dynamic_suggest_full carrying track_to_analysed
Tauri's DailyQ/WeeklyQ /dynamic/suggest seeds a track_to_analysed payload
(~9 resolved {track_id,artist_id,genre_id,label_id} tuples) for the PRIMARY
mix algorithm; the empty-analysis call is only its fallback. The Slint port
only ever sent the empty-analysis path. Add a TrackToAnalyse model
(qbz-models) and a get_dynamic_suggest_full method on the qobuz client and
qbz-core that carries the payload; the existing get_dynamic_suggest now
delegates with an empty analysis (behaviour unchanged). Plumbing only — the
mix.rs build of the analysis tuples + the two-call fallback lands next (a2).
cc
This commit is contained in:
4 files changed
+47
-3
No files matched your search
@@ -124,6 +124,7 @@ pub use types::{
|
||||
StreamUrl,
|
||||
Track,
|
||||
TrackFileUrl,
|
||||
TrackToAnalyse,
|
||||
TracksContainer,
|
||||
UserSession,
|
||||
};
|
||||
@@ -9,6 +9,19 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::collections::HashSet;
|
||||
|
||||
// ============ Dynamic-suggest (DailyQ/WeeklyQ) ============
|
||||
|
||||
/// A seed track resolved for the `/dynamic/suggest` `track_to_analysed`
|
||||
/// payload (DailyQ / WeeklyQ). Field names match the Qobuz wire shape
|
||||
/// exactly; `0` marks an unknown id (mirrors Tauri's `?? 0`).
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct TrackToAnalyse {
|
||||
pub track_id: u64,
|
||||
pub artist_id: u64,
|
||||
pub genre_id: u64,
|
||||
pub label_id: u64,
|
||||
}
|
||||
|
||||
// ============ Quality Types ============
|
||||
|
||||
/// Audio quality format IDs (matches Qobuz API format IDs)
|
||||
|
||||
Reference in new issue
Block a user