From 99198c9487545e7e5ca5c20f1de8366dc46fecef Mon Sep 17 00:00:00 2001 From: acute_interpreter_panic <223899499+acute-interpreter-panic@users.noreply.github.com> Date: Tue, 7 Oct 2025 20:54:00 +0200 Subject: [PATCH] refactored search --- internal/plugin/interface.go | 21 +++++++++++++++++++-- internal/plugin/musify.go | 3 ++- internal/plugin/plugin_test.go | 3 ++- internal/plugin/youtube.go | 3 ++- 4 files changed, 25 insertions(+), 5 deletions(-) diff --git a/internal/plugin/interface.go b/internal/plugin/interface.go index 882689d..ac07881 100644 --- a/internal/plugin/interface.go +++ b/internal/plugin/interface.go @@ -4,6 +4,7 @@ import ( "errors" "regexp" + "gitea.elara.ws/Hazel/music-kraken/internal/common" "gitea.elara.ws/Hazel/music-kraken/internal/data" ) @@ -14,7 +15,7 @@ type Plugin interface { RegexAlbum() *regexp.Regexp RegexSong() *regexp.Regexp - Search(query string) ([]data.MusicObject, error) + Search(query common.Query) ([]data.MusicObject, error) FetchArtist(source data.Source) (data.Artist, error) FetchAlbum(source data.Source) (data.Album, error) @@ -141,6 +142,22 @@ func Fetch(source data.Source) (data.MusicObject, error) { return nil, nil } -func Search(q string) { +func Search(search string) ([]data.MusicObject, error) { + query, err := common.NewQuery(search) + res := []data.MusicObject{} + if err != nil { + return res, err + } + + for _, plugin := range namePlugins { + s, err := plugin.Search(query) + res = append(res, s) + + if err != nil { + return res, err + } + } + + return res } diff --git a/internal/plugin/musify.go b/internal/plugin/musify.go index 5349856..00e159a 100644 --- a/internal/plugin/musify.go +++ b/internal/plugin/musify.go @@ -4,6 +4,7 @@ import ( "regexp" "strings" + "gitea.elara.ws/Hazel/music-kraken/internal/common" "gitea.elara.ws/Hazel/music-kraken/internal/data" ) @@ -56,6 +57,6 @@ func (m Musify) FetchArtist(source data.Source) (data.Artist, error) { }, nil } -func (m Musify) Search(query string) ([]data.MusicObject, error) { +func (m Musify) Search(query common.Query) ([]data.MusicObject, error) { panic("unimplemented") } diff --git a/internal/plugin/plugin_test.go b/internal/plugin/plugin_test.go index 1c6b2ae..aceaaa8 100644 --- a/internal/plugin/plugin_test.go +++ b/internal/plugin/plugin_test.go @@ -5,6 +5,7 @@ import ( "strings" "testing" + "gitea.elara.ws/Hazel/music-kraken/internal/common" "gitea.elara.ws/Hazel/music-kraken/internal/data" ) @@ -57,7 +58,7 @@ func (m MusifyTest) FetchArtist(source data.Source) (data.Artist, error) { }, nil } -func (m MusifyTest) Search(query string) ([]data.MusicObject, error) { +func (m MusifyTest) Search(query common.Query) ([]data.MusicObject, error) { panic("unimplemented") } diff --git a/internal/plugin/youtube.go b/internal/plugin/youtube.go index 26937f2..6d4d5c8 100644 --- a/internal/plugin/youtube.go +++ b/internal/plugin/youtube.go @@ -3,6 +3,7 @@ package plugin import ( "regexp" + "gitea.elara.ws/Hazel/music-kraken/internal/common" "gitea.elara.ws/Hazel/music-kraken/internal/data" ) @@ -41,6 +42,6 @@ func (m Youtube) FetchSong(source data.Source) (data.Song, error) { panic("unimplemented") } -func (m Youtube) Search(query string) ([]data.MusicObject, error) { +func (m Youtube) Search(query common.Query) ([]data.MusicObject, error) { panic("unimplemented") }