forked from AkkomaGang/akkoma
Transmogrifier: Use a simpler way to get mentions.
This commit is contained in:
parent
5fef405208
commit
6bd7070b00
2 changed files with 26 additions and 17 deletions
|
@ -1045,10 +1045,14 @@ def add_hashtags(object) do
|
||||||
Map.put(object, "tag", tags)
|
Map.put(object, "tag", tags)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# TODO These should be added on our side on insertion, it doesn't make much
|
||||||
|
# sense to regenerate these all the time
|
||||||
def add_mention_tags(object) do
|
def add_mention_tags(object) do
|
||||||
{enabled_receivers, disabled_receivers} = Utils.get_notified_from_object(object)
|
to = object["to"] || []
|
||||||
potential_receivers = enabled_receivers ++ disabled_receivers
|
cc = object["cc"] || []
|
||||||
mentions = Enum.map(potential_receivers, &build_mention_tag/1)
|
mentioned = User.get_users_from_set(to ++ cc, local_only: false)
|
||||||
|
|
||||||
|
mentions = Enum.map(mentioned, &build_mention_tag/1)
|
||||||
|
|
||||||
tags = object["tag"] || []
|
tags = object["tag"] || []
|
||||||
Map.put(object, "tag", tags ++ mentions)
|
Map.put(object, "tag", tags ++ mentions)
|
||||||
|
|
|
@ -1094,23 +1094,28 @@ test "it turns mentions into tags" do
|
||||||
{:ok, activity} =
|
{:ok, activity} =
|
||||||
CommonAPI.post(user, %{status: "hey, @#{other_user.nickname}, how are ya? #2hu"})
|
CommonAPI.post(user, %{status: "hey, @#{other_user.nickname}, how are ya? #2hu"})
|
||||||
|
|
||||||
{:ok, modified} = Transmogrifier.prepare_outgoing(activity.data)
|
with_mock Pleroma.Notification,
|
||||||
object = modified["object"]
|
get_notified_from_activity: fn _, _ -> [] end do
|
||||||
|
{:ok, modified} = Transmogrifier.prepare_outgoing(activity.data)
|
||||||
|
|
||||||
expected_mention = %{
|
object = modified["object"]
|
||||||
"href" => other_user.ap_id,
|
|
||||||
"name" => "@#{other_user.nickname}",
|
|
||||||
"type" => "Mention"
|
|
||||||
}
|
|
||||||
|
|
||||||
expected_tag = %{
|
expected_mention = %{
|
||||||
"href" => Pleroma.Web.Endpoint.url() <> "/tags/2hu",
|
"href" => other_user.ap_id,
|
||||||
"type" => "Hashtag",
|
"name" => "@#{other_user.nickname}",
|
||||||
"name" => "#2hu"
|
"type" => "Mention"
|
||||||
}
|
}
|
||||||
|
|
||||||
assert Enum.member?(object["tag"], expected_tag)
|
expected_tag = %{
|
||||||
assert Enum.member?(object["tag"], expected_mention)
|
"href" => Pleroma.Web.Endpoint.url() <> "/tags/2hu",
|
||||||
|
"type" => "Hashtag",
|
||||||
|
"name" => "#2hu"
|
||||||
|
}
|
||||||
|
|
||||||
|
refute called(Pleroma.Notification.get_notified_from_activity(:_, :_))
|
||||||
|
assert Enum.member?(object["tag"], expected_tag)
|
||||||
|
assert Enum.member?(object["tag"], expected_mention)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
test "it adds the sensitive property" do
|
test "it adds the sensitive property" do
|
||||||
|
|
Loading…
Reference in a new issue