also suppress link previews from posts marked #nsfw
This commit is contained in:
parent
0da1233e8e
commit
dc08159538
3 changed files with 26 additions and 3 deletions
|
@ -157,6 +157,7 @@ def post(user, %{"status" => status} = data) do
|
|||
{to, cc} <- to_for_user_and_mentions(user, mentions, in_reply_to, visibility),
|
||||
context <- make_context(in_reply_to),
|
||||
cw <- data["spoiler_text"] || "",
|
||||
sensitive <- data["sensitive"] || Enum.member?(tags, {"#nsfw", "nsfw"}),
|
||||
full_payload <- String.trim(status <> cw),
|
||||
length when length in 1..limit <- String.length(full_payload),
|
||||
object <-
|
||||
|
@ -169,7 +170,8 @@ def post(user, %{"status" => status} = data) do
|
|||
in_reply_to,
|
||||
tags,
|
||||
cw,
|
||||
cc
|
||||
cc,
|
||||
sensitive
|
||||
),
|
||||
object <-
|
||||
Map.put(
|
||||
|
|
|
@ -223,7 +223,8 @@ def make_note_data(
|
|||
in_reply_to,
|
||||
tags,
|
||||
cw \\ nil,
|
||||
cc \\ []
|
||||
cc \\ [],
|
||||
sensitive \\ false
|
||||
) do
|
||||
object = %{
|
||||
"type" => "Note",
|
||||
|
@ -231,6 +232,7 @@ def make_note_data(
|
|||
"cc" => cc,
|
||||
"content" => content_html,
|
||||
"summary" => cw,
|
||||
"sensitive" => sensitive,
|
||||
"context" => context,
|
||||
"attachment" => attachments,
|
||||
"actor" => actor,
|
||||
|
|
|
@ -67,7 +67,26 @@ test "refuses to crawl URLs from posts marked sensitive" do
|
|||
{:ok, activity} =
|
||||
CommonAPI.post(user, %{
|
||||
"status" => "http://example.com/ogp",
|
||||
"spoiler_text" => "."
|
||||
"sensitive" => true
|
||||
})
|
||||
|
||||
%Object{} = object = Object.normalize(activity)
|
||||
|
||||
assert object.data["sensitive"]
|
||||
|
||||
Pleroma.Config.put([:rich_media, :enabled], true)
|
||||
|
||||
assert %{} = Pleroma.Web.RichMedia.Helpers.fetch_data_for_activity(activity)
|
||||
|
||||
Pleroma.Config.put([:rich_media, :enabled], false)
|
||||
end
|
||||
|
||||
test "refuses to crawl URLs from posts tagged NSFW" do
|
||||
user = insert(:user)
|
||||
|
||||
{:ok, activity} =
|
||||
CommonAPI.post(user, %{
|
||||
"status" => "http://example.com/ogp #nsfw"
|
||||
})
|
||||
|
||||
%Object{} = object = Object.normalize(activity)
|
||||
|
|
Loading…
Reference in a new issue