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)
|
||
|
||
}
|