diff --git a/client/src/components/ManualTag.vue b/client/src/components/ManualTag.vue index 29eb196..a7633df 100644 --- a/client/src/components/ManualTag.vue +++ b/client/src/components/ManualTag.vue @@ -29,7 +29,7 @@
@@ -58,12 +58,29 @@ {{ (match.accuracy * 100.0).toFixed(2) }}% {{ match.reason.toUpperCase() }} - {{ match.track.artists.join(", ") }}  {{ match.track.title }} ({{ match.track.version }}) - Album{{ match.track.album }} + {{ match.track.artists.join(", ") }} + {{ match.track.title }} + ({{ match.track.version }}) + + Album {{ match.track.album }} - Genre{{ match.track.genres.join(", ") }} - BPM{{ match.track.bpm }} - Key{{ match.track.key }} + + Genre + {{ match.track.genres.join(", ") }} + + + BPM + {{ match.track.bpm }} + + + Key + {{ match.track.key }} + +
+ + Release Date + {{ match.track.release_date }} +
diff --git a/crates/onetagger-platforms/src/traxsource.rs b/crates/onetagger-platforms/src/traxsource.rs index 8a6d2da..18195b3 100644 --- a/crates/onetagger-platforms/src/traxsource.rs +++ b/crates/onetagger-platforms/src/traxsource.rs @@ -96,6 +96,10 @@ impl Traxsource { let release_date_clean = release_date_raw.replace("Pre-order for ", ""); let release_date = release_date_clean.trim().to_owned(); + // Art + selector = Selector::parse("div.thumb img").unwrap(); + let art_url = track_element.select(&selector).next().unwrap().attr("src").map(String::from); + // Create track tracks.push(Track { platform: "traxsource".to_string(), @@ -107,6 +111,7 @@ impl Traxsource { track_id: Some(track_id), release_id: String::new(), duration: duration.into(), + thumbnail: art_url, ..Default::default() }) } diff --git a/crates/onetagger-ui/src/socket.rs b/crates/onetagger-ui/src/socket.rs index 1836880..78ba624 100644 --- a/crates/onetagger-ui/src/socket.rs +++ b/crates/onetagger-ui/src/socket.rs @@ -585,7 +585,10 @@ async fn handle_message(text: &str, websocket: &mut WebSocket, context: &mut Soc info!("Manual tag starting for path: {path:?}"); TaggerConfigs::AutoTagger(config.clone()).debug_print(); - let rx = onetagger_autotag::manual_tagger(path, &config)?; + let rx = tokio::task::spawn_blocking(move || { + onetagger_autotag::manual_tagger(path, &config) + }).await.unwrap()?; + for (platform, r) in rx { match r { Ok(matches) => {