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 @@
toggleMatch(match)"
+ @update:model-value="(v: any) => toggleMatch(match)"
>
@@ -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) => {