feat(media): enhance source routing and add playlist caching

Update UrlSource::new() to accept a base_url parameter for relative path resolution. Extend the Qobuz router with Playlist and Artist variants to fetch metadata and construct DIDL containers. Introduce an in-memory PlaylistStore cache, refactor search() and browse() to route and cache dynamic playlist items, and add helper utilities for deterministic ID generation.
This commit is contained in:
2026-06-14 21:55:01 +02:00
parent bfa6231b1d
commit 009545de40
3 changed files with 160 additions and 65 deletions

View File

@@ -313,7 +313,8 @@ impl SourcesExt for Server {
Err(e) => tracing::warn!("Failed to build GenericUrlHandler HTTP client: {}", e),
}
let source = Arc::new(UrlSource::new(resolver));
let base_url = self.base_url().to_string();
let source = Arc::new(UrlSource::new(resolver, base_url));
self.register_music_source(source).await;
tracing::info!("✅ URL source registered successfully");