diff options
Diffstat (limited to 'pkg/app/message/utils.go')
-rw-r--r-- | pkg/app/message/utils.go | 53 |
1 files changed, 32 insertions, 21 deletions
diff --git a/pkg/app/message/utils.go b/pkg/app/message/utils.go index 0cb40f5..f79e6f3 100644 --- a/pkg/app/message/utils.go +++ b/pkg/app/message/utils.go @@ -35,29 +35,40 @@ func renderMessageTemplate(w http.ResponseWriter, listName string, message *mode func getFuncMap() template.FuncMap { return template.FuncMap{ - "formatAddr": func(addr string) string { - if strings.Contains(addr, "@lists.gentoo.org") || strings.Contains(addr, "@gentoo.org") { - addr = strings.ReplaceAll(addr, "@lists.gentoo.org", "@l.g.o") - addr = strings.ReplaceAll(addr, "@gentoo.org", "@g.o") - } else { - start := false - for i := len(addr) - 1; i > 0; i-- { - if addr[i] == '@' { - break - } - if start { - out := []rune(addr) - out[i] = '×' - addr = string(out) - } - if addr[i] == '.' { - start = true - } - } + "formatAddr": formatAddr, + "formatAddrList": formatAddrList, + } +} + +func formatAddr(addr string) string { + if strings.Contains(addr, "@lists.gentoo.org") || strings.Contains(addr, "@gentoo.org") { + addr = strings.ReplaceAll(addr, "@lists.gentoo.org", "@l.g.o") + addr = strings.ReplaceAll(addr, "@gentoo.org", "@g.o") + } else { + start := false + for i := len(addr) - 1; i > 0; i-- { + if addr[i] == '@' { + break + } + if start { + out := []rune(addr) + out[i] = '×' + addr = string(out) } - return addr - }, + if addr[i] == '.' { + start = true + } + } + } + return addr +} + +func formatAddrList(addrList []string) string { + var formatedAddrList []string + for _, addr := range addrList { + formatedAddrList = append(formatedAddrList, formatAddr(addr)) } + return strings.Join(formatedAddrList, ", ") } func replaceAtIndex(in string, r rune, i int) string { |