From 1c8c661abb4beda77edefe421fba1a52cf933956 Mon Sep 17 00:00:00 2001 From: r Date: Mon, 22 Nov 2021 06:40:15 +0000 Subject: [PATCH] Fix time parsing for empty string --- mastodon/status.go | 15 ++++++++++++++- templates/status.tmpl | 4 ++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/mastodon/status.go b/mastodon/status.go index 80e7e0e..8b148b3 100644 --- a/mastodon/status.go +++ b/mastodon/status.go @@ -19,6 +19,19 @@ type ReplyInfo struct { Number int `json:"number"` } +type CreatedAt struct { + time.Time +} + +func (t *CreatedAt) UnmarshalJSON(d []byte) error { + // Special case to handle retweets from GNU Social + // which returns empty string ("") in created_at + if len(d) == 2 && string(d) == `""` { + return nil + } + return t.Time.UnmarshalJSON(d) +} + // Status is struct to hold status. type Status struct { ID string `json:"id"` @@ -29,7 +42,7 @@ type Status struct { InReplyToAccountID interface{} `json:"in_reply_to_account_id"` Reblog *Status `json:"reblog"` Content string `json:"content"` - CreatedAt time.Time `json:"created_at"` + CreatedAt CreatedAt `json:"created_at"` Emojis []Emoji `json:"emojis"` RepliesCount int64 `json:"replies_count"` ReblogsCount int64 `json:"reblogs_count"` diff --git a/templates/status.tmpl b/templates/status.tmpl index c79633f..dda1d79 100644 --- a/templates/status.tmpl +++ b/templates/status.tmpl @@ -227,8 +227,8 @@
-