From 61c166b79570219a515bb3b8dd344a403708b371 Mon Sep 17 00:00:00 2001 From: r Date: Mon, 17 Jun 2024 11:41:02 +0000 Subject: Show quoted posts --- mastodon/status.go | 5 ++++- renderer/renderer.go | 12 ++++++++++++ static/style.css | 12 ++++++++++++ templates/status.tmpl | 7 +++++++ 4 files changed, 35 insertions(+), 1 deletion(-) diff --git a/mastodon/status.go b/mastodon/status.go index 20f74a5..d009a7f 100644 --- a/mastodon/status.go +++ b/mastodon/status.go @@ -13,7 +13,10 @@ import ( ) type StatusPleroma struct { - InReplyToAccountAcct string `json:"in_reply_to_account_acct"` + InReplyToAccountAcct string `json:"in_reply_to_account_acct"` + Quote *Status `json:"quote"` + QuoteID string `json:"quote_id"` + QuoteVisible bool `json:"quote_visible"` } type ReplyInfo struct { diff --git a/renderer/renderer.go b/renderer/renderer.go index a88bb9e..e97fee4 100644 --- a/renderer/renderer.go +++ b/renderer/renderer.go @@ -68,6 +68,17 @@ func statusContentFilter(content string, emojis []mastodon.Emoji, mentions []mas return strings.NewReplacer(replacements...).Replace(content) } +func getQuote(s *mastodon.Status) *mastodon.Status { + if s.Pleroma.Quote == nil || !s.Pleroma.QuoteVisible { + return nil + } + q := s.Pleroma.Quote + q.RetweetedByID = s.ID + // Disable nested quotes + q.Pleroma.QuoteVisible = false + return q +} + func displayInteractionCount(c int64) string { if c > 0 { return strconv.Itoa(int(c)) @@ -145,6 +156,7 @@ func NewRenderer(templateGlobPattern string) (r *renderer, err error) { t, err = t.Funcs(template.FuncMap{ "EmojiFilter": emojiFilter, "StatusContentFilter": statusContentFilter, + "GetQuote": getQuote, "DisplayInteractionCount": displayInteractionCount, "TimeSince": timeSince, "TimeUntil": timeUntil, diff --git a/static/style.css b/static/style.css index ad5a360..71f64d7 100644 --- a/static/style.css +++ b/static/style.css @@ -55,6 +55,13 @@ body, position: relative; } +.status-quote { + margin: 4px 0; + padding: 8px; + background-color: #e6e6e6; + background-color: #dadada99; +} + .status-content { margin: 4px 0; max-height: 600px; @@ -585,6 +592,11 @@ input:disabled::file-selector-button { background-color: #2f2f2f99; } +.dark .status-quote { + background-color: #202020; + background-color: #26262699; +} + .dark #reply-popup, .dark #reply-to-popup { background-color: #181818; diff --git a/templates/status.tmpl b/templates/status.tmpl index 503b6f1..d841a93 100644 --- a/templates/status.tmpl +++ b/templates/status.tmpl @@ -177,6 +177,13 @@ {{end}} + {{with $quote := GetQuote .}} + {{if $quote}} +
+ {{template "status" (WithContext $quote $.Ctx)}} +
+ {{end}} + {{end}}
reply -- cgit v1.2.3