61 lines
1.2 KiB
Go
61 lines
1.2 KiB
Go
|
package main
|
|||
|
|
|||
|
import (
|
|||
|
"fmt"
|
|||
|
"strings"
|
|||
|
)
|
|||
|
|
|||
|
// ParseChat Parses a string, returns the payload of the chat
|
|||
|
func ParseChat(chatline string) (LineDate string, LineTime string, LineUser string, LinePayload []string) {
|
|||
|
words := strings.Fields(chatline)
|
|||
|
//fmt.Println(len(words))
|
|||
|
//var LineDate string
|
|||
|
//var LineTime string
|
|||
|
//var LineUser string
|
|||
|
//var LinePayload []string
|
|||
|
var SplitFound int
|
|||
|
|
|||
|
for i := range words {
|
|||
|
|
|||
|
if i == 1 {
|
|||
|
LineDate = words[i]
|
|||
|
}
|
|||
|
|
|||
|
if i == 2 {
|
|||
|
LineTime = words[i]
|
|||
|
}
|
|||
|
|
|||
|
if i >= 5 && SplitFound == 1 {
|
|||
|
LinePayload = append(LinePayload, words[i])
|
|||
|
}
|
|||
|
|
|||
|
if words[i] == ">" {
|
|||
|
SplitFound = 1
|
|||
|
}
|
|||
|
|
|||
|
if i >= 4 && SplitFound == 0 {
|
|||
|
if LineUser == "" {
|
|||
|
LineUser = words[i]
|
|||
|
} else {
|
|||
|
LineUser = LineUser + " " + words[i]
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
//fmt.Println(LineDate)
|
|||
|
//fmt.Println(LineTime)
|
|||
|
//fmt.Println(LineUser)
|
|||
|
//fmt.Println(LinePayload)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
func main() {
|
|||
|
|
|||
|
mystring := "<22><>[ 2022.02.07 19:57:52 ] Samoa Serine > BY-7PY Morretus Isayeki nv"
|
|||
|
|
|||
|
LineDate, LineTime, LineUser, Payload := ParseChat(mystring)
|
|||
|
fmt.Println("On " + LineDate + " " + LineTime + " " + LineUser + " posted the following: ")
|
|||
|
fmt.Println(Payload)
|
|||
|
|
|||
|
}
|