aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2018-05-23 17:25:24 +0200
committerlain <lain@soykaf.club>2018-05-23 17:25:24 +0200
commit0b5bc62b33a655488afe73b35945adcbab11300d (patch)
treefa2bc3e558d827fa4448f288105429f4a3aa6619
parent06c97f211fc4a8c9c9c7e77143c3398ade817ab4 (diff)
downloadpleroma-0b5bc62b33a655488afe73b35945adcbab11300d.tar.gz
Don't save double tags in AP objects we create
This crashed Mastodon workers.
-rw-r--r--lib/pleroma/web/common_api/utils.ex2
-rw-r--r--test/web/common_api/common_api_test.exs13
2 files changed, 14 insertions, 1 deletions
diff --git a/lib/pleroma/web/common_api/utils.ex b/lib/pleroma/web/common_api/utils.ex
index e774743a2..71412eea8 100644
--- a/lib/pleroma/web/common_api/utils.ex
+++ b/lib/pleroma/web/common_api/utils.ex
@@ -133,7 +133,7 @@ defmodule Pleroma.Web.CommonAPI.Utils do
"context" => context,
"attachment" => attachments,
"actor" => actor,
- "tag" => tags |> Enum.map(fn {_, tag} -> tag end)
+ "tag" => tags |> Enum.map(fn {_, tag} -> tag end) |> Enum.uniq()
}
if inReplyTo do
diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs
new file mode 100644
index 000000000..b597e6e0a
--- /dev/null
+++ b/test/web/common_api/common_api_test.exs
@@ -0,0 +1,13 @@
+defmodule Pleroma.Web.CommonAPI.UtilsTest do
+ use Pleroma.DataCase
+ alias Pleroma.Web.CommonAPI
+
+ import Pleroma.Factory
+
+ test "it de-duplicates tags" do
+ user = insert(:user)
+ {:ok, activity} = CommonAPI.post(user, %{"status" => "#2hu #2HU"})
+
+ assert activity.data["object"]["tag"] == ["2hu"]
+ end
+end