Refactor string utilities into its own package str
This commit is contained in:
@@ -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]
|
||||
}
|
||||
Reference in New Issue
Block a user