diff options
author | r <r@freesoftwareextremist.com> | 2020-02-19 16:33:21 +0000 |
---|---|---|
committer | r <r@freesoftwareextremist.com> | 2020-02-19 16:33:21 +0000 |
commit | dd23ac48678c704949074dd0e41bb8a3550cc33f (patch) | |
tree | 923248c707bcf17db9a7b921195933c3c828935c | |
parent | fe31d4197b66cced9ca84779fac4fe69242d844b (diff) | |
download | bloat-dd23ac48678c704949074dd0e41bb8a3550cc33f.tar.gz bloat-dd23ac48678c704949074dd0e41bb8a3550cc33f.zip |
Fix time duration value
- Make sure that duration is not < 0
- Handle nil ExpiresAt time in poll
-rw-r--r-- | mastodon/poll.go | 2 | ||||
-rw-r--r-- | renderer/renderer.go | 12 | ||||
-rw-r--r-- | templates/status.tmpl | 2 |
3 files changed, 12 insertions, 4 deletions
diff --git a/mastodon/poll.go b/mastodon/poll.go index 274b95e..cd874a7 100644 --- a/mastodon/poll.go +++ b/mastodon/poll.go @@ -10,7 +10,7 @@ import ( type Poll struct { ID string `json:"id"` - ExpiresAt time.Time `json:"expires_at"` + ExpiresAt *time.Time `json:"expires_at"` Expired bool `json:"expired"` Multiple bool `json:"multiple"` VotesCount int64 `json:"votes_count"` diff --git a/renderer/renderer.go b/renderer/renderer.go index 293a6c6..a4f749d 100644 --- a/renderer/renderer.go +++ b/renderer/renderer.go @@ -197,11 +197,19 @@ func DurToStr(dur time.Duration) string { } func TimeSince(t time.Time) string { - return DurToStr(time.Since(t)) + d := time.Since(t) + if d < 0 { + d = 0 + } + return DurToStr(d) } func TimeUntil(t time.Time) string { - return DurToStr(time.Until(t)) + d := time.Until(t) + if d < 0 { + d = 0 + } + return DurToStr(d) } func FormatTimeRFC3339(t time.Time) string { diff --git a/templates/status.tmpl b/templates/status.tmpl index c4f2e5f..536f515 100644 --- a/templates/status.tmpl +++ b/templates/status.tmpl @@ -126,7 +126,7 @@ <span>{{.Poll.VotesCount}} votes</span> {{if .Poll.Expired}} <span> - poll expired </span> - {{else}} + {{else if .Poll.ExpiresAt}} <span> - poll ends in <time datetime="{{FormatTimeRFC3339 .Poll.ExpiresAt}}" title="{{FormatTimeRFC822 .Poll.ExpiresAt}}"> |