feat: add Qobuz playlist caching with versioning and infinite scroll UI

- Add qobuz_debug to .gitignore
- Bump PMOMusic version to 0.3.26
- Add .cargo/ copy in Dockerfile for registry config
- Implement infinite scroll in ServerDrawer.vue with IntersectionObserver and sentinel element
- Add source/source_version fields to playlists for cache invalidation
- Update pmocache and pmoplaylist DB schemas with versioning (SCHEMA_VERSION)
- Add Qobuz API metadata fetching and pagination for playlist tracks
- Implement album/playlist cache invalidation based on released_at/updated_at timestamps
- Refactor adapt_playlist_items_to_qobuz → adapt_items_to_qobuz with cleaner logic
- Add debug mode to save Qobuz API responses when QOBUZ_DEBUG_DIR is set
This commit is contained in:
2026-03-24 17:10:38 +01:00
parent 402c3399e4
commit 0137a4675f
17 changed files with 688 additions and 160 deletions

View File

@@ -54,6 +54,9 @@ pub struct Album {
/// Date de sortie (format ISO 8601)
#[serde(default)]
pub release_date: Option<String>,
/// Timestamp Unix de sortie (released_at)
#[serde(default)]
pub released_at: Option<i64>,
/// URL de l'image de couverture
#[serde(default)]
pub image: Option<String>,
@@ -141,6 +144,9 @@ pub struct Playlist {
/// Indique si c'est une playlist publique
#[serde(default)]
pub is_public: bool,
/// Timestamp de dernière modification (Unix epoch secondes)
#[serde(default)]
pub updated_at: Option<i64>,
/// Propriétaire de la playlist
#[serde(default)]
pub owner: Option<PlaylistOwner>,