From 17894eecaf18acd32e234fc205e4e5ad1d16b0ec Mon Sep 17 00:00:00 2001 From: Ryze Date: Tue, 7 Feb 2023 00:53:36 +0300 Subject: [PATCH] Use release group instead, fixed plus char interfereing with search query --- src/discord_client/music_brainz.rs | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/discord_client/music_brainz.rs b/src/discord_client/music_brainz.rs index cba0663..f682b74 100644 --- a/src/discord_client/music_brainz.rs +++ b/src/discord_client/music_brainz.rs @@ -1,24 +1,28 @@ -use musicbrainz_rs::entity::release::{Release, ReleaseSearchQuery}; +use musicbrainz_rs::entity::release_group::{ReleaseGroup, ReleaseGroupSearchQuery}; use musicbrainz_rs::entity::CoverartResponse; use musicbrainz_rs::{Search, FetchCoverart}; pub fn get_cover_art_url(title: &Option, album: &Option, artist: &Option) -> Option{ - let mut builder = ReleaseSearchQuery::query_builder(); + let mut builder = ReleaseGroupSearchQuery::query_builder(); if let Some(ref title) = title { - builder.release(title); + builder.release_group(title); } if let Some(ref album) = album { - builder.or().release(album); + builder.or().release_group(album); } if let Some(ref artist) = artist { - builder.and().artist(artist); + // Some artist fields might contain + characters + // Pointing at multiple artists + for part in artist.split("+") { + builder.and().artist(part); + } } - + let query = builder.build(); - let result = match Release::search(query).execute() { + let result = match ReleaseGroup::search(query).execute() { Ok(res) => res, Err(_) => return None };