From acce599f2df8f180c08b94b840f4ca0f92d3f1b8 Mon Sep 17 00:00:00 2001 From: Hazel Noack Date: Tue, 7 Oct 2025 16:45:52 +0200 Subject: [PATCH] removed redundant code in source --- internal/data/source.go | 14 ------------ internal/plugin/youtube.go | 46 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 14 deletions(-) create mode 100644 internal/plugin/youtube.go diff --git a/internal/data/source.go b/internal/data/source.go index 0272350..1720536 100644 --- a/internal/data/source.go +++ b/internal/data/source.go @@ -12,20 +12,6 @@ type SourceType struct { RegexSong *regexp.Regexp } -var SourceTypes = []SourceType{ - {Name: "Youtube", Regex: regexp.MustCompile(`(?i)\b(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/(?:[^\/\n\s]+\/\S+\/|(?:v|e(?:mbed)?)\/|\S*?[?&]v=)|youtu\.be\/)([a-zA-Z0-9_-]{11})\b`)}, - {Name: "Musify", Regex: regexp.MustCompile(`(?i)https?://musify\.club/(artist|track|release)/[a-z\-0-9]+`)}, -} - -func GetSourceType(name string) *SourceType { - for i, st := range SourceTypes { - if st.Name == name { - return &SourceTypes[i] - } - } - panic("couldn't find source type for " + name) -} - type ObjectType string const SongSource = ObjectType("song") diff --git a/internal/plugin/youtube.go b/internal/plugin/youtube.go new file mode 100644 index 0000000..26937f2 --- /dev/null +++ b/internal/plugin/youtube.go @@ -0,0 +1,46 @@ +package plugin + +import ( + "regexp" + + "gitea.elara.ws/Hazel/music-kraken/internal/data" +) + +type Youtube struct { +} + +func (m Youtube) Name() string { + return "Youtube" +} + +func (m Youtube) Regex() *regexp.Regexp { + return regexp.MustCompile(`(?i)\b(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/(?:[^\/\n\s]+\/\S+\/|(?:v|e(?:mbed)?)\/|\S*?[?&]v=)|youtu\.be\/)([a-zA-Z0-9_-]{11})\b`) +} + +func (m Youtube) RegexAlbum() *regexp.Regexp { + panic("unimplemented") +} + +func (m Youtube) RegexArtist() *regexp.Regexp { + panic("unimplemented") +} + +func (m Youtube) RegexSong() *regexp.Regexp { + panic("unimplemented") +} + +func (m Youtube) FetchAlbum(source data.Source) (data.Album, error) { + panic("unimplemented") +} + +func (m Youtube) FetchArtist(source data.Source) (data.Artist, error) { + panic("unimplemented") +} + +func (m Youtube) FetchSong(source data.Source) (data.Song, error) { + panic("unimplemented") +} + +func (m Youtube) Search(query string) ([]data.MusicObject, error) { + panic("unimplemented") +}