Refactor string utilities into its own package str

This commit is contained in:
Deluan
2024-06-05 22:09:27 -04:00
parent 46fc38bf61
commit abe5690018
16 changed files with 158 additions and 125 deletions
+46
View File
@@ -0,0 +1,46 @@
package str
import (
"strings"
"github.com/navidrome/navidrome/conf"
)
func Clear(name string) string {
r := strings.NewReplacer(
"", "-",
"", "-",
"“", `"`,
"”", `"`,
"", `'`,
"", `'`,
)
return r.Replace(name)
}
func NoArticle(name string) string {
articles := strings.Split(conf.Server.IgnoredArticles, " ")
for _, a := range articles {
n := strings.TrimPrefix(name, a+" ")
if n != name {
return n
}
}
return name
}
func LongestCommonPrefix(list []string) string {
if len(list) == 0 {
return ""
}
for l := 0; l < len(list[0]); l++ {
c := list[0][l]
for i := 1; i < len(list); i++ {
if l >= len(list[i]) || list[i][l] != c {
return list[i][0:l]
}
}
}
return list[0]
}