X-Git-Url: https://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fweb%2Ffederator.ex;h=82fb9e4e005b70a92523b328529ae7dff1d281b7;hb=c3fde9577d5822243a7567a55cefa2fd2f289559;hp=f5ef76d32f0ae9a5324a325cc0fce8c91eeffb2d;hpb=79bc4bcc3cb89bb5860470626df5f02991b95885;p=akkoma diff --git a/lib/pleroma/web/federator.ex b/lib/pleroma/web/federator.ex index f5ef76d32..82fb9e4e0 100644 --- a/lib/pleroma/web/federator.ex +++ b/lib/pleroma/web/federator.ex @@ -47,8 +47,16 @@ defmodule Pleroma.Web.Federator do end @impl true - def publish(activity) do - PublisherWorker.enqueue("publish", %{"activity_id" => activity.id}) + def publish(%{data: %{"object" => object}} = activity) when is_binary(object) do + PublisherWorker.enqueue("publish", %{"activity_id" => activity.id, "object_data" => nil}) + end + + @impl true + def publish(%{data: %{"object" => object}} = activity) when is_map(object) or is_list(object) do + PublisherWorker.enqueue("publish", %{ + "activity_id" => activity.id, + "object_data" => Jason.encode!(object) + }) end # Job Worker Callbacks @@ -96,6 +104,11 @@ defmodule Pleroma.Web.Federator do Logger.debug("Unhandled actor #{actor}, #{inspect(e)}") {:error, e} + {:error, {:validate_object, _}} = e -> + Logger.error("Incoming AP doc validation error: #{inspect(e)}") + Logger.debug(Jason.encode!(params, pretty: true)) + e + e -> # Just drop those for now Logger.debug(fn -> "Unhandled activity\n" <> Jason.encode!(params, pretty: true) end)