refactored search

This commit is contained in:
acute_interpreter_panic 2025-10-07 20:54:00 +02:00
parent b2a0fb6952
commit 99198c9487
4 changed files with 25 additions and 5 deletions

View File

@ -4,6 +4,7 @@ import (
"errors" "errors"
"regexp" "regexp"
"gitea.elara.ws/Hazel/music-kraken/internal/common"
"gitea.elara.ws/Hazel/music-kraken/internal/data" "gitea.elara.ws/Hazel/music-kraken/internal/data"
) )
@ -14,7 +15,7 @@ type Plugin interface {
RegexAlbum() *regexp.Regexp RegexAlbum() *regexp.Regexp
RegexSong() *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) FetchArtist(source data.Source) (data.Artist, error)
FetchAlbum(source data.Source) (data.Album, error) FetchAlbum(source data.Source) (data.Album, error)
@ -141,6 +142,22 @@ func Fetch(source data.Source) (data.MusicObject, error) {
return nil, nil 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
} }

View File

@ -4,6 +4,7 @@ import (
"regexp" "regexp"
"strings" "strings"
"gitea.elara.ws/Hazel/music-kraken/internal/common"
"gitea.elara.ws/Hazel/music-kraken/internal/data" "gitea.elara.ws/Hazel/music-kraken/internal/data"
) )
@ -56,6 +57,6 @@ func (m Musify) FetchArtist(source data.Source) (data.Artist, error) {
}, nil }, nil
} }
func (m Musify) Search(query string) ([]data.MusicObject, error) { func (m Musify) Search(query common.Query) ([]data.MusicObject, error) {
panic("unimplemented") panic("unimplemented")
} }

View File

@ -5,6 +5,7 @@ import (
"strings" "strings"
"testing" "testing"
"gitea.elara.ws/Hazel/music-kraken/internal/common"
"gitea.elara.ws/Hazel/music-kraken/internal/data" "gitea.elara.ws/Hazel/music-kraken/internal/data"
) )
@ -57,7 +58,7 @@ func (m MusifyTest) FetchArtist(source data.Source) (data.Artist, error) {
}, nil }, nil
} }
func (m MusifyTest) Search(query string) ([]data.MusicObject, error) { func (m MusifyTest) Search(query common.Query) ([]data.MusicObject, error) {
panic("unimplemented") panic("unimplemented")
} }

View File

@ -3,6 +3,7 @@ package plugin
import ( import (
"regexp" "regexp"
"gitea.elara.ws/Hazel/music-kraken/internal/common"
"gitea.elara.ws/Hazel/music-kraken/internal/data" "gitea.elara.ws/Hazel/music-kraken/internal/data"
) )
@ -41,6 +42,6 @@ func (m Youtube) FetchSong(source data.Source) (data.Song, error) {
panic("unimplemented") panic("unimplemented")
} }
func (m Youtube) Search(query string) ([]data.MusicObject, error) { func (m Youtube) Search(query common.Query) ([]data.MusicObject, error) {
panic("unimplemented") panic("unimplemented")
} }