Order by exposure date

This commit is contained in:
Daniel Mason 2021-09-02 11:03:23 +12:00
parent 903012231a
commit a884ed7f46
Signed by: idanoo
GPG key ID: 387387CDBC02F132
2 changed files with 39 additions and 4 deletions

View file

@ -4,6 +4,7 @@ import (
"encoding/csv"
"fmt"
"log"
"sort"
"strings"
"time"
)
@ -15,6 +16,7 @@ type UpdatedLocations struct {
// Updated data
type UpdatedRow struct {
ChangeDate time.Time // To order b
ChangeType string // ADDED, REMOVED, MODIFIED
DiscordData string // Formatted Row data
TwitterData string // Formatted Row data
@ -26,7 +28,10 @@ var updatedLocations UpdatedLocations
// parseCsvRow Build into struct for output later
func parseCsvRow(changeType string, data string) {
parsedTime := parseTimeFromRow(data)
newRow := UpdatedRow{
ChangeDate: parsedTime,
ChangeType: changeType,
DiscordData: formatCsvDiscordRow(data),
TwitterData: formatCsvTwitterRow(data),
@ -36,6 +41,12 @@ func parseCsvRow(changeType string, data string) {
updatedLocations.Locations = append(updatedLocations.Locations, newRow)
}
func orderRowDataByDate() {
sort.Slice(updatedLocations.Locations, func(i, j int) bool {
return updatedLocations.Locations[i].ChangeDate.Before(updatedLocations.Locations[j].ChangeDate)
})
}
// formatCsvDiscordRow Format the string to a tidy string for the interwebs
func formatCsvDiscordRow(data string) string {
c := parseRawRowData(data)
@ -54,6 +65,28 @@ func formatCsvSlackRow(data string) string {
return fmt.Sprintf("*%s* %s on _%s_ - _%s_", c[2], c[3], c[0], c[1])
}
func parseTimeFromRow(data string) time.Time {
r := csv.NewReader(strings.NewReader(data))
r.Comma = ','
fields, err := r.Read()
if err != nil {
fmt.Println(err)
return time.Now()
}
c := make([]string, 0)
c = append(c, fields...)
starttime := c[4]
st, err := time.Parse("02/01/2006, 3:04 pm", starttime)
if err != nil {
log.Print(err)
return time.Now()
}
return st
}
// Returns []string of parsed
func parseRawRowData(data string) []string {
output := make([]string, 0)

View file

@ -34,6 +34,8 @@ func Lesgoooo() {
}
func postTheUpdates() {
orderRowDataByDate()
// Twitter
go postToTwitter()