Debug qobuz pas encore parfait mais mieux

This commit is contained in:
2025-12-28 12:53:40 +01:00
parent 0c64ed1a9a
commit 2b69350162
5 changed files with 61 additions and 7 deletions

View File

@@ -127,13 +127,16 @@ impl SourcesExt for Server {
tracing::info!("Initializing Qobuz source...");
// Obtenir l'URL de base du serveur
let base_url = self.base_url();
// Créer le client depuis la config
let client = QobuzClient::from_config()
.await
.map_err(|e| SourceInitError::QobuzError(format!("Failed to create client: {}", e)))?;
// Créer la source depuis le registry
let source = QobuzSource::from_registry(client)
let source = QobuzSource::from_registry(client, base_url)
.map_err(|e| SourceInitError::QobuzError(format!("Failed to create source: {}", e)))?;
// Enregistrer la source
@@ -154,13 +157,16 @@ impl SourcesExt for Server {
tracing::info!("Initializing Qobuz source with explicit credentials...");
// Obtenir l'URL de base du serveur
let base_url = self.base_url();
// Créer le client avec credentials
let client = QobuzClient::new(username, password)
.await
.map_err(|e| SourceInitError::QobuzError(format!("Failed to authenticate: {}", e)))?;
// Créer la source depuis le registry
let source = QobuzSource::from_registry(client)
let source = QobuzSource::from_registry(client, base_url)
.map_err(|e| SourceInitError::QobuzError(format!("Failed to create source: {}", e)))?;
// Enregistrer la source

View File

@@ -26,6 +26,9 @@ pub struct QobuzCredentials {
pub username: Option<String>,
/// Mot de passe Qobuz (optionnel, lu depuis la config si absent)
pub password: Option<String>,
/// URL de base du serveur (optionnelle, "http://localhost:8080" par défaut)
#[serde(default)]
pub base_url: Option<String>,
}
/// Paramètres pour Radio Paradise
@@ -75,6 +78,11 @@ async fn register_qobuz(Json(creds): Json<QobuzCredentials>) -> impl IntoRespons
use pmoqobuz::{QobuzClient, QobuzSource};
use pmosource::api::register_source;
// Utiliser l'URL de base depuis les params ou une valeur par défaut
let base_url = creds
.base_url
.unwrap_or_else(|| "http://localhost:8080".to_string());
// Créer le client selon les credentials fournis
let client_result = if let (Some(username), Some(password)) = (creds.username, creds.password) {
QobuzClient::new(&username, &password).await
@@ -96,7 +104,7 @@ async fn register_qobuz(Json(creds): Json<QobuzCredentials>) -> impl IntoRespons
};
// Créer et enregistrer la source depuis le registry
let source = match QobuzSource::from_registry(client) {
let source = match QobuzSource::from_registry(client, base_url) {
Ok(s) => Arc::new(s),
Err(e) => {
return (