From 78badbac86e7c5d0348a5d84eee8a69ef90cdac1 Mon Sep 17 00:00:00 2001 From: Daniel Mason Date: Wed, 1 Sep 2021 22:44:20 +1200 Subject: [PATCH] Update message parsing --- internal/nzcovidbot/csv.go | 49 +++++++++++++++++++++++++------------- 1 file changed, 32 insertions(+), 17 deletions(-) diff --git a/internal/nzcovidbot/csv.go b/internal/nzcovidbot/csv.go index e7be610..ed862ff 100644 --- a/internal/nzcovidbot/csv.go +++ b/internal/nzcovidbot/csv.go @@ -3,7 +3,9 @@ package nzcovidbot import ( "encoding/csv" "fmt" + "log" "strings" + "time" ) // Slice of updated located @@ -34,36 +36,49 @@ func parseCsvRow(changeType string, data string) { // formatCsvDiscordRow Format the string to a tidy string for the interwebs func formatCsvDiscordRow(data string) string { - // Split string - r := csv.NewReader(strings.NewReader(data)) - r.Comma = ',' - fields, err := r.Read() - if err != nil { - fmt.Println(err) - return "" - } - - c := make([]string, 0) - c = append(c, fields...) - endtime := strings.Split(c[5], ", ") - return fmt.Sprintf("**%s** %s on _%s_ - _%s_", c[1], c[2], c[4], endtime[1]) + c := parseRawRowData(data) + return fmt.Sprintf("**%s** %s on _%s_ - _%s_", c[2], c[3], c[0], c[1]) } // formatCsvTwitterRow Format the string to a tidy string for the interwebs func formatCsvTwitterRow(data string) string { - // Split string + c := parseRawRowData(data) + return fmt.Sprintf("New Location: *%s*no w\n%s\n_%s_ - _%s_\n#NZCovidTracker #NZCovid", c[2], c[3], c[0], c[1]) +} + +// Returns []string of parsed +func parseRawRowData(data string) []string { + output := make([]string, 0) + r := csv.NewReader(strings.NewReader(data)) r.Comma = ',' fields, err := r.Read() if err != nil { fmt.Println(err) - return "" + return output } c := make([]string, 0) c = append(c, fields...) - endtime := strings.Split(c[5], ", ") - return fmt.Sprintf("New Location: *%s*no w\n%s\n_%s_ - _%s_\n#NZCovidBot", c[1], c[2], c[4], endtime[1]) + + starttime := c[4] + st, err := time.Parse("02/01/2006, 3:04 pm", starttime) + if err != nil { + log.Print(err) + } else { + starttime = st.Format("Monday 2 Jan, 3:04PM") + } + + endtime := c[5] + et, err := time.Parse("02/01/2006, 3:04 pm", endtime) + if err != nil { + log.Print(err) + endtime = strings.Split(c[5], ", ")[1] + } else { + endtime = et.Format("3:04PM") + } + + return append(output, starttime, endtime, c[1], c[2]) } func getPostableDiscordData() string {