Adding git-hub.com/dustin/go-humanize to get human-readable dates (“1 month ago”, “just now”, etc.)

This commit is contained in:
Gwyneth Llewelyn
2020-08-13 23:49:35 +00:00
parent 477f6e1a1a
commit 2e7f1fcb07
4 changed files with 16 additions and 5 deletions
+1
View File
@@ -4,6 +4,7 @@ go 1.14
require (
github.com/RackSec/srslog v0.0.0-20180709174129-a4725f04ec91
github.com/dustin/go-humanize v1.0.0
github.com/gin-contrib/sessions v0.0.3
github.com/gin-gonic/gin v1.6.3
github.com/go-playground/validator/v10 v10.3.0 // indirect
+2
View File
@@ -10,6 +10,8 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/gin-contrib/sessions v0.0.3 h1:PoBXki+44XdJdlgDqDrY5nDVe3Wk7wDV/UCOuLP6fBI=
+12 -4
View File
@@ -4,9 +4,10 @@ import (
"database/sql"
"encoding/gob"
// "fmt"
"log"
"github.com/dustin/go-humanize"
"github.com/gin-contrib/sessions"
"github.com/gin-gonic/gin"
"log"
"strconv"
)
@@ -40,7 +41,7 @@ func GetTopOfflineMessages(c *gin.Context) {
if *config["dsn"] == "" {
log.Fatal("Please configure the DSN for accessing your OpenSimulator database; this application won't work without that")
}
db, err := sql.Open("mysql", *config["dsn"]) // presumes mysql for now
db, err := sql.Open("mysql", *config["dsn"] + "?parseTime=true") // this will allow parsing MySQL timestamps into Time vars; see https://stackoverflow.com/a/46613451/1035977
checkErrFatal(err)
defer db.Close()
@@ -63,21 +64,28 @@ func GetTopOfflineMessages(c *gin.Context) {
oneMessage OfflineIM
messages []OfflineIM
firstName, lastName, email string
messageTimeStamp sql.NullTime // sql.NullTime will match timestamps with NULLs without crashing; see https://stackoverflow.com/a/60293251/1035977
)
for i := 1; rows.Next(); i++ {
for /* i := 1; */ rows.Next() /* ; i++ */ { // uncomment for special
err = rows.Scan(
&oneMessage.ID,
&oneMessage.PrincipalID,
&oneMessage.FromID,
&oneMessage.Message,
&oneMessage.TMStamp,
&messageTimeStamp,
&firstName,
&lastName,
&email,
)
oneMessage.Username = firstName + " " + lastName
oneMessage.Libravatar = getAvatar(email, oneMessage.Username, 60)
// do something to the time
if messageTimeStamp.Valid {
oneMessage.TMStamp = humanize.Time(messageTimeStamp.Time)
} else {
oneMessage.TMStamp = ""
}
// if *config["ginMode"] == "debug" {
// log.Printf("[DEBUG]: message # %d from user %q <%s> to %q is: %q\n", i, oneMessage.Username, email, username, oneMessage.Message)
+1 -1
View File
@@ -111,7 +111,7 @@
</div>
<div class="font-weight-bold">
<div class="text-truncate">{{- .Message -}}</div>
<div class="small text-gray-500">{{- .Username -}} · {{- .TMStamp -}}</div>
<div class="small text-gray-500">{{- .Username -}}{{- if .TMStamp }}&nbsp;·&nbsp;{{ .TMStamp -}}{{- end -}}</div>
</div>
</a>
{{ else }}