federator: publisher: only attempt publishing if we know the activity is representable

This commit is contained in:
William Pitcock 2019-05-12 04:17:17 +00:00
parent 69158f1065
commit 2aee62a456

View File

@ -39,7 +39,7 @@ def perform(:publish_one, module, params) do
{:ok, _} ->
:ok
{:error, _} ->
{:error, _e} ->
RetryQueue.enqueue(params, module)
end
end
@ -58,8 +58,10 @@ def perform(type, _, _) do
def publish(%User{} = user, %Activity{} = activity) do
Config.get([:instance, :federation_publisher_modules])
|> Enum.each(fn module ->
Logger.info("Publishing #{activity.data["id"]} using #{inspect(module)}")
module.publish(user, activity)
if module.is_representable?(activity) do
Logger.info("Publishing #{activity.data["id"]} using #{inspect(module)}")
module.publish(user, activity)
end
end)
:ok