A decentralized music tracking and discovery platform built on AT Protocol 🎵

feat: update sync_scrobbles function to require RepoImpl instead of Option and adjust calls accordingly

+6 -12
+1 -1
crates/feed/src/feed.rs
··· 130 if !enable_sync { 131 return Ok::<(), Error>(()); 132 } 133 - sync_scrobbles(Some(ddb_clone)).await?; 134 Ok::<(), Error>(()) 135 }); 136 let feed_server = warp::serve(routes);
··· 130 if !enable_sync { 131 return Ok::<(), Error>(()); 132 } 133 + sync_scrobbles(ddb_clone).await?; 134 Ok::<(), Error>(()) 135 }); 136 let feed_server = warp::serve(routes);
+3 -10
crates/feed/src/sync.rs
··· 8 use crate::repo::{duckdb::DuckdbRepo, Repo, RepoImpl}; 9 use crate::types::ScrobbleRecord; 10 11 - pub async fn sync_scrobbles(ddb: Option<RepoImpl>) -> Result<(), Error> { 12 tracing::info!("Starting scrobble synchronization..."); 13 14 let (tx, mut rx) = tokio::sync::mpsc::channel::<PgRow>(500); ··· 89 .await?; 90 let total_scrobbles = total_scrobbles.0; 91 92 - let repo = RepoImpl::Duckdb(DuckdbRepo::new().await?); 93 repo.create_tables().await?; 94 95 while let Some(row) = rx.recv().await { ··· 136 song_uri: row.get::<Option<String>, _>("track_uri"), 137 }; 138 139 - let repo = match ddb { 140 - Some(RepoImpl::Duckdb(_)) => RepoImpl::Duckdb(DuckdbRepo::new().await?), 141 - Some(RepoImpl::Postgres(_)) => { 142 - unimplemented!("Postgres repo not implemented yet"); 143 - } 144 - None => RepoImpl::Duckdb(DuckdbRepo::new().await?), 145 - }; 146 - 147 repo.insert_scrobble(&did, &scrobble_uri, record).await?; 148 149 i += 1;
··· 8 use crate::repo::{duckdb::DuckdbRepo, Repo, RepoImpl}; 9 use crate::types::ScrobbleRecord; 10 11 + pub async fn sync_scrobbles(ddb: RepoImpl) -> Result<(), Error> { 12 tracing::info!("Starting scrobble synchronization..."); 13 14 let (tx, mut rx) = tokio::sync::mpsc::channel::<PgRow>(500); ··· 89 .await?; 90 let total_scrobbles = total_scrobbles.0; 91 92 + let repo = ddb.clone(); 93 repo.create_tables().await?; 94 95 while let Some(row) = rx.recv().await { ··· 136 song_uri: row.get::<Option<String>, _>("track_uri"), 137 }; 138 139 + let repo = ddb.clone(); 140 repo.insert_scrobble(&did, &scrobble_uri, record).await?; 141 142 i += 1;
+2 -1
crates/rockskyd/src/cmd/feed.rs
··· 1 use anyhow::Error; 2 3 pub async fn serve(enable_sync: bool) -> Result<(), Error> { 4 rocksky_feed::run(enable_sync).await?; ··· 6 } 7 8 pub async fn sync() -> Result<(), Error> { 9 - rocksky_feed::sync::sync_scrobbles(None).await 10 }
··· 1 use anyhow::Error; 2 + use rocksky_feed::repo::{duckdb::DuckdbRepo, RepoImpl}; 3 4 pub async fn serve(enable_sync: bool) -> Result<(), Error> { 5 rocksky_feed::run(enable_sync).await?; ··· 7 } 8 9 pub async fn sync() -> Result<(), Error> { 10 + rocksky_feed::sync::sync_scrobbles(RepoImpl::Duckdb(DuckdbRepo::new().await?)).await 11 }