From cbd02435160f0eea652f2870c3a54ce3c000a6d6 Mon Sep 17 00:00:00 2001 From: Connor Johnstone Date: Fri, 20 Mar 2026 14:52:16 -0400 Subject: [PATCH] Re-organized providers and added a few --- Cargo.toml | 1 + src/error.rs | 6 ++++++ src/musicbrainz.rs | 10 +++++----- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index da87ae6..58d0757 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,6 +7,7 @@ description = "Online music search for Shanty" repository = "ssh://connor@git.rcjohnstone.com:2222/Shanty/search.git" [dependencies] +shanty-data = { path = "../shanty-data" } shanty-db = { path = "../shanty-db" } shanty-tag = { path = "../shanty-tag" } sea-orm = { version = "1", features = ["sqlx-sqlite", "runtime-tokio-native-tls"] } diff --git a/src/error.rs b/src/error.rs index 14df5df..59b505d 100644 --- a/src/error.rs +++ b/src/error.rs @@ -15,6 +15,12 @@ pub enum SearchError { Other(String), } +impl From for SearchError { + fn from(e: shanty_data::DataError) -> Self { + SearchError::Provider(e.to_string()) + } +} + impl From for SearchError { fn from(e: shanty_tag::TagError) -> Self { SearchError::Provider(e.to_string()) diff --git a/src/musicbrainz.rs b/src/musicbrainz.rs index 5f6d3d5..6be0707 100644 --- a/src/musicbrainz.rs +++ b/src/musicbrainz.rs @@ -1,19 +1,19 @@ -use shanty_tag::MusicBrainzClient; -use shanty_tag::provider::MetadataProvider; +use shanty_data::MetadataFetcher; +use shanty_data::MusicBrainzFetcher; use crate::error::SearchResult; use crate::provider::{ AlbumResult, ArtistResult, Discography, DiscographyEntry, SearchProvider, TrackResult, }; -/// MusicBrainz implementation of `SearchProvider`, wrapping shanty-tag's client. +/// MusicBrainz implementation of `SearchProvider`, wrapping shanty-data's fetcher. pub struct MusicBrainzSearch { - client: MusicBrainzClient, + client: MusicBrainzFetcher, } impl MusicBrainzSearch { pub fn new() -> SearchResult { - let client = MusicBrainzClient::new() + let client = MusicBrainzFetcher::new() .map_err(|e| crate::error::SearchError::Provider(e.to_string()))?; Ok(Self { client }) }