A decentralized music tracking and discovery platform built on AT Protocol 🎵 rocksky.app
spotify atproto lastfm musicbrainz scrobbling listenbrainz

fix empty dropbox parent dir value

+17 -6
+3 -3
crates/dropbox/src/repo/dropbox_path.rs
··· 9 9 file: &Entry, 10 10 track: &Track, 11 11 dropbox_id: &str, 12 - parent_dir: Option<&str>, 12 + parent_path: Option<String>, 13 13 ) -> Result<(), sqlx::Error> { 14 14 let results: Vec<DropboxDirectory> = sqlx::query_as( 15 15 r#" ··· 21 21 "#, 22 22 ) 23 23 .bind(dropbox_id) 24 - .bind(parent_dir) 24 + .bind(&parent_path) 25 25 .fetch_all(pool) 26 26 .await?; 27 27 28 - let parent_dir = match parent_dir { 28 + let parent_dir = match parent_path { 29 29 Some(_) => results.first().map(|d| d.clone().xata_id), 30 30 None => None, 31 31 };
+14 -3
crates/dropbox/src/scan.rs
··· 97 97 if entry.tag.clone().unwrap().as_str() == "folder" { 98 98 println!("Scanning folder: {}", path.bright_green()); 99 99 100 - create_dropbox_directory(&pool, &entry, &dropbox_id, &path).await?; 100 + let parent_path = Path::new(&path) 101 + .parent() 102 + .map(|p| p.to_string_lossy().to_string()) 103 + .unwrap_or_else(|| "".to_string()); 104 + 105 + create_dropbox_directory(&pool, &entry, &dropbox_id, &parent_path).await?; 101 106 102 107 // TODO: publish folder metadata to nats 103 108 ··· 283 288 match track { 284 289 Some(track) => { 285 290 println!("Track exists: {}", title.bright_green()); 286 - let status = create_dropbox_path(&pool, &entry, &track, &dropbox_id, Some(&path)).await; 291 + let parent_path = Path::new(&path) 292 + .parent() 293 + .map(|p| p.to_string_lossy().to_string()); 294 + let status = create_dropbox_path(&pool, &entry, &track, &dropbox_id, parent_path).await; 287 295 println!("status: {:?}", status); 288 296 289 297 // TODO: publish file metadata to nats ··· 331 339 332 340 let track = get_track_by_hash(&pool, &hash).await?; 333 341 if let Some(track) = track { 334 - create_dropbox_path(&pool, &entry, &track, &dropbox_id, Some(&path)).await?; 342 + let parent_path = Path::new(&path) 343 + .parent() 344 + .map(|p| p.to_string_lossy().to_string()); 345 + create_dropbox_path(&pool, &entry, &track, &dropbox_id, parent_path).await?; 335 346 336 347 // TODO: publish file metadata to nats 337 348