projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Chats: Basic implementation.
[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 f82142979dc561f2ef2b66488ecaa1787f26e67b..a4b385cd5c49917914a8184522fb7c6b243001bb 100644
(file)
--- a/
lib/pleroma/web/activity_pub/transmogrifier.ex
+++ b/
lib/pleroma/web/activity_pub/transmogrifier.ex
@@
-1267,23
+1267,24
@@
defmodule Pleroma.Web.ActivityPub.Transmogrifier do
{:error, :no_context}
end
{:error, :no_context}
end
- defp maybe_add_recipients_from_object(%{"object" => object} = data) do
- to = data["to"] || []
- cc = data["cc"] || []
+ defp maybe_add_recipients_from_object(%{"to" => [_ | _], "cc" => [_ | _]} = data),
+ do: {:ok, data}
- if to == [] && cc == [] do
- if object = Object.normalize(object) do
+ defp maybe_add_recipients_from_object(%{"object" => object} = data) do
+ case Object.normalize(object) do
+ %{data: %{"actor" => actor}} ->
data =
data
data =
data
- |> Map.put("to", [
object.data["actor"]
])
- |> Map.put("cc",
cc
)
+ |> Map.put("to", [
actor
])
+ |> Map.put("cc",
data["cc"] || []
)
{:ok, data}
{:ok, data}
- else
- {:error, "No actor on referenced object"}
- end
- else
- {:ok, data}
+
+ nil ->
+ {:error, :no_object}
+
+ _ ->
+ {:error, :no_actor}
end
end
end
end