aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreal <eal@waifu.club>2017-11-18 14:34:37 +0000
committereal <eal@waifu.club>2017-11-18 14:34:37 +0000
commit7b397ed125b55172390a8143bfb21ecab571ad97 (patch)
treeeaf8417b010b75cc7a6cb8200196c6da59522c8f
parent4647bcd6e647ad31ba492a6e712721b58bf47e83 (diff)
parentf53cdabcdf5e64c862e0532e6d5ad26666e9c83f (diff)
downloadpleroma-7b397ed125b55172390a8143bfb21ecab571ad97.tar.gz
Merge branch 'sensitive-content-bit' into 'develop'
Add #nsfw tag if sensitive content bit is set Closes #78 See merge request pleroma/pleroma!23
-rw-r--r--lib/pleroma/formatter.ex3
-rw-r--r--lib/pleroma/web/common_api/common_api.ex2
-rw-r--r--test/web/mastodon_api/mastodon_api_controller_test.exs11
3 files changed, 14 insertions, 2 deletions
diff --git a/lib/pleroma/formatter.ex b/lib/pleroma/formatter.ex
index 27e2adc16..fbcbca979 100644
--- a/lib/pleroma/formatter.ex
+++ b/lib/pleroma/formatter.ex
@@ -7,9 +7,10 @@ defmodule Pleroma.Formatter do
end
@tag_regex ~r/\#\w+/u
- def parse_tags(text) do
+ def parse_tags(text, data \\ %{}) do
Regex.scan(@tag_regex, text)
|> Enum.map(fn (["#" <> tag = full_tag]) -> {full_tag, String.downcase(tag)} end)
+ |> (fn map -> if data["sensitive"], do: [{"#nsfw", "nsfw"}] ++ map, else: map end).()
end
def parse_mentions(text) do
diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex
index 9ae7b095a..9bc7f2ce6 100644
--- a/lib/pleroma/web/common_api/common_api.ex
+++ b/lib/pleroma/web/common_api/common_api.ex
@@ -55,7 +55,7 @@ defmodule Pleroma.Web.CommonAPI do
mentions <- Formatter.parse_mentions(status),
inReplyTo <- get_replied_to_activity(data["in_reply_to_status_id"]),
to <- to_for_user_and_mentions(user, mentions, inReplyTo),
- tags <- Formatter.parse_tags(status),
+ tags <- Formatter.parse_tags(status, data),
content_html <- make_content_html(status, mentions, attachments, tags),
context <- make_context(inReplyTo),
cw <- data["spoiler_text"],
diff --git a/test/web/mastodon_api/mastodon_api_controller_test.exs b/test/web/mastodon_api/mastodon_api_controller_test.exs
index a00a11f8b..c8b929501 100644
--- a/test/web/mastodon_api/mastodon_api_controller_test.exs
+++ b/test/web/mastodon_api/mastodon_api_controller_test.exs
@@ -56,6 +56,17 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
assert Repo.get(Activity, id)
end
+ test "posting a sensitive status", %{conn: conn} do
+ user = insert(:user)
+
+ conn = conn
+ |> assign(:user, user)
+ |> post("/api/v1/statuses", %{"status" => "cofe", "sensitive" => true})
+
+ assert %{"content" => "cofe", "id" => id, "sensitive" => true} = json_response(conn, 200)
+ assert Repo.get(Activity, id)
+ end
+
test "replying to a status", %{conn: conn} do
user = insert(:user)