commit 5f165b70e93af046648925625db592f8e1abff79 from: mtmn date: Thu May 7 11:04:52 2026 UTC feat: save discogs' subgenre as genre tag commit - 3b237fd1f8835a1757287f837d2ff093ca141e00 commit + 5f165b70e93af046648925625db592f8e1abff79 blob - b20ae4f5d3308c131bf0300c8b5bc61bf3ff0c0e blob + 89d084c2ef32057e7001688b7a5d47b51363db0d --- src/fetchers/discogs.rs +++ src/fetchers/discogs.rs @@ -64,7 +64,6 @@ pub struct DiscogsSearchResponse { #[derive(Deserialize, Debug, Clone)] pub struct DiscogsResult { - pub genre: Option>, pub style: Option>, pub label: Option>, } blob - 1cf54defde17f26568954c545fff6c7db8f5d124 blob + 596d7518226915037d27856fd8948ea5133b89e9 --- src/metadata/fetch.rs +++ src/metadata/fetch.rs @@ -1,5 +1,5 @@ use crate::context::AppContext; -use crate::metadata::{extract_genres, extract_labels, extract_subgenres}; +use crate::metadata::{extract_labels, extract_subgenres}; use anyhow::Result; use std::collections::HashSet; @@ -15,31 +15,26 @@ pub async fn process_query(ctx: &AppContext, artist: & fetch_musicbrainz(ctx, artist, album), ); - let mut genres = HashSet::new(); let mut subgenres = HashSet::new(); let mut labels = HashSet::new(); if let Ok(Some(data)) = discogs_res { - genres.extend(extract_genres(&data)); + // Use Discogs subgenres (style) as primary genres subgenres.extend(extract_subgenres(&data)); labels.extend(extract_labels(&data)); } if let Ok(mb_genres) = mb_res { - genres.extend(mb_genres); + subgenres.extend(mb_genres); } Ok(FetchedMetadata { genres: { - let mut v: Vec<_> = genres.into_iter().collect(); - v.sort(); - v - }, - subgenres: { let mut v: Vec<_> = subgenres.into_iter().collect(); v.sort(); v }, + subgenres: vec![], labels: { let mut v: Vec<_> = labels.into_iter().collect(); v.sort(); blob - 05ed8eb5e632a0d4da3ad5197960929e7a9ad728 blob + 21e95fc234b6be4b1baf36b698256dd38d7ec0f0 --- src/metadata/mod.rs +++ src/metadata/mod.rs @@ -2,10 +2,6 @@ pub mod fetch; use crate::fetchers::discogs::DiscogsResult; -pub fn extract_genres(result: &DiscogsResult) -> Vec { - result.genre.iter().flatten().cloned().collect() -} - pub fn extract_subgenres(result: &DiscogsResult) -> Vec { result.style.iter().flatten().cloned().collect() }