implement unify

This commit is contained in:
Hazel Noack 2025-10-07 13:26:35 +02:00
parent bd62068e09
commit e833af1ecc
2 changed files with 22 additions and 1 deletions

View File

@ -0,0 +1,12 @@
package common
import "strings"
func Unify(s string) string {
s = strings.TrimSpace(s)
s = strings.ToLower(s)
for strings.Contains(s, " ") {
s = strings.ReplaceAll(s, " ", " ")
}
return s
}

View File

@ -1,6 +1,11 @@
package data package data
import "strconv" import (
"strconv"
"gitea.elara.ws/Hazel/music-kraken/internal/common"
"github.com/gohugoio/hugo/common"
)
type MusicObject interface { type MusicObject interface {
Compile() MusicObject Compile() MusicObject
@ -13,6 +18,7 @@ func dedupeMusicObjects[T MusicObject](inputMusicObjects []T) []T {
deduped := []T{} deduped := []T{}
for _, musicObject := range inputMusicObjects { for _, musicObject := range inputMusicObjects {
musicObject = musicObject.Compile().(T)
indices := musicObject.GetIndices() indices := musicObject.GetIndices()
// Check if we've seen any of these indices before // Check if we've seen any of these indices before
@ -99,6 +105,7 @@ func (m Song) Merge(other MusicObject) MusicObject {
func (m Song) Compile() MusicObject { func (m Song) Compile() MusicObject {
m.Sources = dedupeSources(m.Sources) m.Sources = dedupeSources(m.Sources)
m.UnifiedName = common.Unify(m.Name)
m.Artists = dedupeMusicObjects(m.Artists) m.Artists = dedupeMusicObjects(m.Artists)
return m return m
} }
@ -150,6 +157,7 @@ func (m Album) Merge(other MusicObject) MusicObject {
func (m Album) Compile() MusicObject { func (m Album) Compile() MusicObject {
m.Sources = dedupeSources(m.Sources) m.Sources = dedupeSources(m.Sources)
m.UnifiedName = common.Unify(m.Name)
m.Songs = dedupeMusicObjects(m.Songs) m.Songs = dedupeMusicObjects(m.Songs)
m.Artists = dedupeMusicObjects(m.Artists) m.Artists = dedupeMusicObjects(m.Artists)
return m return m
@ -199,6 +207,7 @@ func (m Artist) GetIndices() []string {
func (m Artist) Compile() MusicObject { func (m Artist) Compile() MusicObject {
m.Sources = dedupeSources(m.Sources) m.Sources = dedupeSources(m.Sources)
m.UnifiedName = common.Unify(m.Name)
m.Albums = dedupeMusicObjects(m.Albums) m.Albums = dedupeMusicObjects(m.Albums)
return m return m
} }