Extracted Qobuz API client from qbz-nix to qbz-qobuz crate. Modules: - client.rs: Main QobuzClient with all API methods - auth.rs: Request signing and authentication - bundle.rs: Bundle token extraction - endpoints.rs: API endpoint definitions - error.rs: API error types - performers.rs: Performers parsing Updated qbz-models with additional types: - Discover types (DiscoverResponse, DiscoverAlbum, etc.) - Artist page types (PageArtistResponse, ReleasesGridResponse, etc.) - Playlist tags (PlaylistTag, PlaylistTagsResponse) Dependencies: - reqwest for HTTP - md-5 for request signing - futures-util for concurrent requests - anyhow for error handling
38 lines
674 B
TOML
38 lines
674 B
TOML
[package]
|
|
name = "qbz-qobuz"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
description = "Qobuz API client for QBZ"
|
|
|
|
[dependencies]
|
|
qbz-models = { path = "../qbz-models" }
|
|
|
|
# Async
|
|
tokio = { workspace = true }
|
|
futures-util = { workspace = true }
|
|
|
|
# HTTP
|
|
reqwest = { workspace = true }
|
|
|
|
# Serialization
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
|
|
# Crypto (for Qobuz auth)
|
|
md-5 = { workspace = true }
|
|
base64 = { workspace = true }
|
|
|
|
# Time
|
|
chrono = { workspace = true }
|
|
|
|
# Regex
|
|
regex = { workspace = true }
|
|
|
|
# Logging
|
|
log = { workspace = true }
|
|
|
|
# Error handling
|
|
thiserror = { workspace = true }
|
|
anyhow = { workspace = true }
|