diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/web/activity_pub/mrf/simple_policy.ex | 5 | ||||
| -rw-r--r-- | lib/pleroma/web/common_api/common_api.ex | 4 | ||||
| -rw-r--r-- | lib/pleroma/web/common_api/utils.ex | 4 | ||||
| -rw-r--r-- | lib/pleroma/web/rich_media/helpers.ex | 1 | 
4 files changed, 9 insertions, 5 deletions
| diff --git a/lib/pleroma/web/activity_pub/mrf/simple_policy.ex b/lib/pleroma/web/activity_pub/mrf/simple_policy.ex index 50426e920..9627c3400 100644 --- a/lib/pleroma/web/activity_pub/mrf/simple_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/simple_policy.ex @@ -48,10 +48,9 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicy do           %{host: actor_host} = _actor_info,           %{             "type" => "Create", -           "object" => %{"attachment" => child_attachment} = child_object +           "object" => child_object           } = object -       ) -       when length(child_attachment) > 0 do +       ) do      object =        if Enum.member?(Pleroma.Config.get([:mrf_simple, :media_nsfw]), actor_host) do          tags = (child_object["tag"] || []) ++ ["nsfw"] diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex index a599ffee5..5a312d673 100644 --- a/lib/pleroma/web/common_api/common_api.ex +++ b/lib/pleroma/web/common_api/common_api.ex @@ -157,6 +157,7 @@ defmodule Pleroma.Web.CommonAPI 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 @@ defmodule Pleroma.Web.CommonAPI do               in_reply_to,               tags,               cw, -             cc +             cc, +             sensitive             ),           object <-             Map.put( diff --git a/lib/pleroma/web/common_api/utils.ex b/lib/pleroma/web/common_api/utils.ex index bee2fd159..d93c0d46e 100644 --- a/lib/pleroma/web/common_api/utils.ex +++ b/lib/pleroma/web/common_api/utils.ex @@ -223,7 +223,8 @@ defmodule Pleroma.Web.CommonAPI.Utils do          in_reply_to,          tags,          cw \\ nil, -        cc \\ [] +        cc \\ [], +        sensitive \\ false        ) do      object = %{        "type" => "Note", @@ -231,6 +232,7 @@ defmodule Pleroma.Web.CommonAPI.Utils do        "cc" => cc,        "content" => content_html,        "summary" => cw, +      "sensitive" => !Enum.member?(["false", "False", "0", false], sensitive),        "context" => context,        "attachment" => attachments,        "actor" => actor, diff --git a/lib/pleroma/web/rich_media/helpers.ex b/lib/pleroma/web/rich_media/helpers.ex index 0162a5be9..9bc8f2559 100644 --- a/lib/pleroma/web/rich_media/helpers.ex +++ b/lib/pleroma/web/rich_media/helpers.ex @@ -24,6 +24,7 @@ defmodule Pleroma.Web.RichMedia.Helpers do    def fetch_data_for_activity(%Activity{data: %{"type" => "Create"}} = activity) do      with true <- Pleroma.Config.get([:rich_media, :enabled]),           %Object{} = object <- Object.normalize(activity), +         false <- object.data["sensitive"] || false,           {:ok, page_url} <- HTML.extract_first_external_url(object, object.data["content"]),           :ok <- validate_page_url(page_url),           {:ok, rich_media} <- Parser.parse(page_url) do | 
