projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'origin/develop' into activity-pub-use-atoms-as-keys
[akkoma]
/
lib
/
pleroma
/
web
/
activity_pub
/
transmogrifier.ex
diff --git
a/lib/pleroma/web/activity_pub/transmogrifier.ex
b/lib/pleroma/web/activity_pub/transmogrifier.ex
index d594c64f486e56542629a7d5424119632a0db920..fda1c71df1e13244e329466903db3fb506b22781 100644
(file)
--- a/
lib/pleroma/web/activity_pub/transmogrifier.ex
+++ b/
lib/pleroma/web/activity_pub/transmogrifier.ex
@@
-9,6
+9,7
@@
defmodule Pleroma.Web.ActivityPub.Transmogrifier do
alias Pleroma.Activity
alias Pleroma.EarmarkRenderer
alias Pleroma.FollowingRelationship
alias Pleroma.Activity
alias Pleroma.EarmarkRenderer
alias Pleroma.FollowingRelationship
+ alias Pleroma.Maps
alias Pleroma.Object
alias Pleroma.Object.Containment
alias Pleroma.Repo
alias Pleroma.Object
alias Pleroma.Object.Containment
alias Pleroma.Repo
@@
-208,12
+209,6
@@
defmodule Pleroma.Web.ActivityPub.Transmogrifier do
|> Map.put("conversation", context)
end
|> Map.put("conversation", context)
end
- defp add_if_present(map, _key, nil), do: map
-
- defp add_if_present(map, key, value) do
- Map.put(map, key, value)
- end
-
def fix_attachments(%{"attachment" => attachment} = object) when is_list(attachment) do
attachments =
Enum.map(attachment, fn data ->
def fix_attachments(%{"attachment" => attachment} = object) when is_list(attachment) do
attachments =
Enum.map(attachment, fn data ->
@@
-241,13
+236,13
@@
defmodule Pleroma.Web.ActivityPub.Transmogrifier do
attachment_url =
%{"href" => href}
attachment_url =
%{"href" => href}
- |>
add
_if_present("mediaType", media_type)
- |>
add
_if_present("type", Map.get(url || %{}, "type"))
+ |>
Maps.put
_if_present("mediaType", media_type)
+ |>
Maps.put
_if_present("type", Map.get(url || %{}, "type"))
%{"url" => [attachment_url]}
%{"url" => [attachment_url]}
- |>
add
_if_present("mediaType", media_type)
- |>
add
_if_present("type", data["type"])
- |>
add
_if_present("name", data["name"])
+ |>
Maps.put
_if_present("mediaType", media_type)
+ |>
Maps.put
_if_present("type", data["type"])
+ |>
Maps.put
_if_present("name", data["name"])
end)
Map.put(object, "attachment", attachments)
end)
Map.put(object, "attachment", attachments)
@@
-1045,10
+1040,14
@@
defmodule Pleroma.Web.ActivityPub.Transmogrifier do
Map.put(object, "tag", tags)
end
Map.put(object, "tag", tags)
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)
- potential_receivers = enabled_receivers ++ disabled_receivers
- mentions = Enum.map(potential_receivers, &build_mention_tag/1)
+ to = object["to"] || []
+ cc = object["cc"] || []
+ mentioned = User.get_users_from_set(to ++ cc, local_only: false)
+
+ mentions = Enum.map(mentioned, &build_mention_tag/1)
tags = object["tag"] || []
Map.put(object, "tag", tags ++ mentions)
tags = object["tag"] || []
Map.put(object, "tag", tags ++ mentions)