From d8113c11e4d84a6d04d56b58d337c235154a535b Mon Sep 17 00:00:00 2001
From: tobi <31960611+tsmethurst@users.noreply.github.com>
Date: Fri, 7 Mar 2025 15:04:34 +0100
Subject: [feature] Parse content warning to HTML, serialize via client API as
plaintext (#3876)
* [feature] Parse content warning as HTML, serialize via API to plaintext
* tidy up some cruft
* whoops
* oops
* i'm da joker baybee
* clemency muy lorde
* rename some of the text functions for clarity
* jiggle the opts
* fiddle de deee
* hopefully the last test fix i ever have to do in my beautiful life
---
internal/processing/account/rss_test.go | 8 ++++----
internal/processing/account/update.go | 18 +++++++++---------
2 files changed, 13 insertions(+), 13 deletions(-)
(limited to 'internal/processing/account')
diff --git a/internal/processing/account/rss_test.go b/internal/processing/account/rss_test.go
index 5606151c2..9b6b1ee75 100644
--- a/internal/processing/account/rss_test.go
+++ b/internal/processing/account/rss_test.go
@@ -43,10 +43,10 @@ func (suite *GetRSSTestSuite) TestGetAccountRSSAdmin() {
Wed, 20 Oct 2021 10:41:37 +0000Wed, 20 Oct 2021 10:41:37 +0000
- open to see some puppies
+ open to see some <strong>puppies</strong>
http://localhost:8080/@admin/statuses/01F8MHAAY43M6RJ473VQFCVH37
@admin@localhost:8080 made a new post: "🐕🐕🐕🐕🐕"
-
+ 🐕🐕🐕🐕🐕
]]>
@admin@localhost:8080http://localhost:8080/@admin/statuses/01F8MHAAY43M6RJ473VQFCVH37Wed, 20 Oct 2021 12:36:45 +0000
@@ -56,7 +56,7 @@ func (suite *GetRSSTestSuite) TestGetAccountRSSAdmin() {
hello world! #welcome ! first post on the instance :rainbow: !
http://localhost:8080/@admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R
@admin@localhost:8080 posted 1 attachment: "hello world! #welcome ! first post on the instance :rainbow: !"
- !]]>
+ hello world! #welcome ! first post on the instance !]]>@admin@localhost:8080http://localhost:8080/@admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R
@@ -145,7 +145,7 @@ func (suite *GetRSSTestSuite) TestGetAccountRSSZork() {
introduction post
http://localhost:8080/@the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY
@the_mighty_zork@localhost:8080 made a new post: "hello everyone!"
-
+ hello everyone!]]>@the_mighty_zork@localhost:8080http://localhost:8080/@the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMYWed, 20 Oct 2021 10:40:37 +0000
diff --git a/internal/processing/account/update.go b/internal/processing/account/update.go
index 2bdbf96f4..3a59dbdf3 100644
--- a/internal/processing/account/update.go
+++ b/internal/processing/account/update.go
@@ -97,8 +97,8 @@ func (p *Processor) Update(ctx context.Context, account *gtsmodel.Account, form
return nil, gtserror.NewErrorBadRequest(err, err.Error())
}
- // Parse new display name (always from plaintext).
- account.DisplayName = text.SanitizeToPlaintext(displayName)
+ // HTML tags not allowed in display name.
+ account.DisplayName = text.StripHTMLFromText(displayName)
acctColumns = append(acctColumns, "display_name")
}
@@ -145,7 +145,7 @@ func (p *Processor) Update(ctx context.Context, account *gtsmodel.Account, form
}
if form.AvatarDescription != nil {
- desc := text.SanitizeToPlaintext(*form.AvatarDescription)
+ desc := text.StripHTMLFromText(*form.AvatarDescription)
form.AvatarDescription = &desc
}
@@ -175,7 +175,7 @@ func (p *Processor) Update(ctx context.Context, account *gtsmodel.Account, form
}
if form.HeaderDescription != nil {
- desc := text.SanitizeToPlaintext(*form.HeaderDescription)
+ desc := text.StripHTMLFromText(*form.HeaderDescription)
form.HeaderDescription = util.Ptr(desc)
}
@@ -265,7 +265,7 @@ func (p *Processor) Update(ctx context.Context, account *gtsmodel.Account, form
return nil, gtserror.NewErrorBadRequest(err, err.Error())
}
- account.Settings.CustomCSS = text.SanitizeToPlaintext(customCSS)
+ account.Settings.CustomCSS = text.StripHTMLFromText(customCSS)
settingsColumns = append(settingsColumns, "custom_css")
}
@@ -356,8 +356,8 @@ func (p *Processor) updateFields(
// Sanitize raw field values.
fieldRaw := >smodel.Field{
- Name: text.SanitizeToPlaintext(name),
- Value: text.SanitizeToPlaintext(value),
+ Name: text.StripHTMLFromText(name),
+ Value: text.StripHTMLFromText(value),
}
fieldsRaw = append(fieldsRaw, fieldRaw)
}
@@ -385,7 +385,7 @@ func (p *Processor) processAccountText(
emojis := make(map[string]*gtsmodel.Emoji)
// Retrieve display name emojis.
- for _, emoji := range p.formatter.FromPlainEmojiOnly(
+ for _, emoji := range p.formatter.FromPlainBasic(
ctx,
p.parseMention,
account.ID,
@@ -413,7 +413,7 @@ func (p *Processor) processAccountText(
// Name stays plain, but we still need to
// see if there are any emojis set in it.
field.Name = fieldRaw.Name
- for _, emoji := range p.formatter.FromPlainEmojiOnly(
+ for _, emoji := range p.formatter.FromPlainBasic(
ctx,
p.parseMention,
account.ID,
--
cgit v1.2.3