diff options
author | William Pitcock <nenolod@dereferenced.org> | 2018-11-17 15:51:02 +0000 |
---|---|---|
committer | William Pitcock <nenolod@dereferenced.org> | 2019-01-20 02:27:48 +0000 |
commit | 8d06be35e0f1cb5caa2b638330c8bb03ad08a127 (patch) | |
tree | 311f12546fea905dc950a00f39a1ca664fb4c3e1 /lib | |
parent | 42612b1c8d356843b9e8785d3a91072f38fb50cf (diff) | |
download | pleroma-8d06be35e0f1cb5caa2b638330c8bb03ad08a127.tar.gz |
activitypub: utils: add determine_explicit_mentions() and tests
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/activity_pub/utils.ex | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/pleroma/web/activity_pub/utils.ex b/lib/pleroma/web/activity_pub/utils.ex index d2e457a68..d516818d9 100644 --- a/lib/pleroma/web/activity_pub/utils.ex +++ b/lib/pleroma/web/activity_pub/utils.ex @@ -25,6 +25,20 @@ defmodule Pleroma.Web.ActivityPub.Utils do Map.put(params, "actor", get_ap_id(params["actor"])) end + def determine_explicit_mentions(%{"tag" => tag} = _object) when is_list(tag) do + tag + |> Enum.filter(fn x -> is_map(x) end) + |> Enum.filter(fn x -> x["type"] == "Mention" end) + |> Enum.map(fn x -> x["href"] end) + end + + def determine_explicit_mentions(%{"tag" => tag} = object) when is_map(tag) do + Map.put(object, "tag", [tag]) + |> determine_explicit_mentions() + end + + def determine_explicit_mentions(_), do: [] + defp recipient_in_collection(ap_id, coll) when is_binary(coll), do: ap_id == coll defp recipient_in_collection(ap_id, coll) when is_list(coll), do: ap_id in coll defp recipient_in_collection(_, _), do: false |