ticket-pimp/bot/helpers/helpers.go

61 lines
1.1 KiB
Go

package helpers
import (
"encoding/xml"
"regexp"
"strconv"
"strings"
)
func GitNaming(input string) string {
// Remove leading and trailing whitespace
input = strings.TrimSpace(input)
// Replace non-Latin letters with spaces
reg := regexp.MustCompile("[^a-zA-Z0-9]+")
input = strings.TrimSpace(reg.ReplaceAllString(input, " "))
// Split into words
words := strings.Fields(input)
for i, word := range words {
words[i] = strings.ToLower(word)
}
// Join words and return
return strings.Join(words, "-")
}
type MultistatusObj struct {
XMLName xml.Name `xml:"multistatus"`
Multistatus struct {
XMLName xml.Name `xml:"response"`
Propstat struct {
XMLName xml.Name `xml:"propstat"`
Prop struct {
XMLName xml.Name `xml:"prop"`
FileID struct {
XMLName xml.Name `xml:"fileid"`
ID string `xml:",chardata"`
}
}
}
}
}
func GetFileIDFromRespBody(str []byte) int {
var multi MultistatusObj
err := xml.Unmarshal(str, &multi)
if err != nil {
return 0
}
id, err := strconv.Atoi(multi.Multistatus.Propstat.Prop.FileID.ID)
if err != nil {
return 0
}
return id
}