From f4e1adfd4a87b1b27600efbcf80de3d94fc33d21 Mon Sep 17 00:00:00 2001 From: Victoria Fischer Date: Fri, 26 Jun 2026 10:19:10 +0200 Subject: [PATCH] artifacts: bandcamp: implement synchronization for artists --- src/artifacts/bandcamp.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/artifacts/bandcamp.rs b/src/artifacts/bandcamp.rs index 12073d4..9e26834 100644 --- a/src/artifacts/bandcamp.rs +++ b/src/artifacts/bandcamp.rs @@ -2,7 +2,7 @@ use bandcamp::SearchResultItem; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; -use crate::artifacts::{Album, Artifact, ArtifactBuilder, Artist, SourceID, Track, tools::{DataSource, ToolDescription}}; +use crate::artifacts::{Album, Artifact, ArtifactBuilder, Artist, Contents, SourceID, Track, tools::{DataSource, ToolDescription}}; #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema)] pub struct BandcampQueryArgs { @@ -34,8 +34,12 @@ impl DataSource for BandcampSource { type Args = BandcampQueryArgs; type Error = bandcamp::Error; - async fn synchronize(&self, _artifact: &mut Artifact) -> Result, Self::Error> { - todo!() + async fn synchronize(&self, artifact: &mut Artifact) -> Result, Self::Error> { + if let Contents::Artist(artist) = &artifact.contents { + Ok(self.query(&BandcampQueryArgs { query: artist.name.clone() }).await.unwrap_or_default()) + } else { + Ok(vec![]) + } } async fn query(&self, args: &Self::Args) -> Result, Self::Error> {