mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-10-29 13:22:25 -05:00
[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
This commit is contained in:
parent
424f62dd70
commit
d8113c11e4
48 changed files with 985 additions and 635 deletions
|
|
@ -43,10 +43,10 @@ func (suite *GetRSSTestSuite) TestGetAccountRSSAdmin() {
|
|||
<pubDate>Wed, 20 Oct 2021 10:41:37 +0000</pubDate>
|
||||
<lastBuildDate>Wed, 20 Oct 2021 10:41:37 +0000</lastBuildDate>
|
||||
<item>
|
||||
<title>open to see some puppies</title>
|
||||
<title>open to see some <strong>puppies</strong></title>
|
||||
<link>http://localhost:8080/@admin/statuses/01F8MHAAY43M6RJ473VQFCVH37</link>
|
||||
<description>@admin@localhost:8080 made a new post: "🐕🐕🐕🐕🐕"</description>
|
||||
<content:encoded><![CDATA[🐕🐕🐕🐕🐕]]></content:encoded>
|
||||
<content:encoded><![CDATA[<p>🐕🐕🐕🐕🐕</p>]]></content:encoded>
|
||||
<author>@admin@localhost:8080</author>
|
||||
<guid isPermaLink="true">http://localhost:8080/@admin/statuses/01F8MHAAY43M6RJ473VQFCVH37</guid>
|
||||
<pubDate>Wed, 20 Oct 2021 12:36:45 +0000</pubDate>
|
||||
|
|
@ -56,7 +56,7 @@ func (suite *GetRSSTestSuite) TestGetAccountRSSAdmin() {
|
|||
<title>hello world! #welcome ! first post on the instance :rainbow: !</title>
|
||||
<link>http://localhost:8080/@admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R</link>
|
||||
<description>@admin@localhost:8080 posted 1 attachment: "hello world! #welcome ! first post on the instance :rainbow: !"</description>
|
||||
<content:encoded><![CDATA[hello world! #welcome ! first post on the instance <img src="http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png" title=":rainbow:" alt=":rainbow:" width="25" height="25" /> !]]></content:encoded>
|
||||
<content:encoded><![CDATA[<p>hello world! <a href="http://localhost:8080/tags/welcome" class="mention hashtag" rel="tag nofollow noreferrer noopener" target="_blank">#<span>welcome</span></a> ! first post on the instance <img src="http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png" title=":rainbow:" alt=":rainbow:" width="25" height="25" /> !</p>]]></content:encoded>
|
||||
<author>@admin@localhost:8080</author>
|
||||
<enclosure url="http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/original/01F8MH6NEM8D7527KZAECTCR76.jpg" length="62529" type="image/jpeg"></enclosure>
|
||||
<guid isPermaLink="true">http://localhost:8080/@admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R</guid>
|
||||
|
|
@ -145,7 +145,7 @@ func (suite *GetRSSTestSuite) TestGetAccountRSSZork() {
|
|||
<title>introduction post</title>
|
||||
<link>http://localhost:8080/@the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY</link>
|
||||
<description>@the_mighty_zork@localhost:8080 made a new post: "hello everyone!"</description>
|
||||
<content:encoded><![CDATA[hello everyone!]]></content:encoded>
|
||||
<content:encoded><![CDATA[<p>hello everyone!</p>]]></content:encoded>
|
||||
<author>@the_mighty_zork@localhost:8080</author>
|
||||
<guid isPermaLink="true">http://localhost:8080/@the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY</guid>
|
||||
<pubDate>Wed, 20 Oct 2021 10:40:37 +0000</pubDate>
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue