activitypub transmogrifier: handle activity lookup failure
with the introduction of MRF, it is possible that an activity may be orphaned from it's parent, if an activity in the chain was rejected by the active MRF policies. accordingly, handle this in the same way as any other orphaned activity. closes #156
This commit is contained in:
parent
ea42ba603f
commit
401e8af943
@ -30,14 +30,19 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
|
|||||||
when not is_nil(in_reply_to_id) do
|
when not is_nil(in_reply_to_id) do
|
||||||
case ActivityPub.fetch_object_from_id(in_reply_to_id) do
|
case ActivityPub.fetch_object_from_id(in_reply_to_id) do
|
||||||
{:ok, replied_object} ->
|
{:ok, replied_object} ->
|
||||||
activity = Activity.get_create_activity_by_object_ap_id(replied_object.data["id"])
|
with %Activity{} = activity <-
|
||||||
|
Activity.get_create_activity_by_object_ap_id(replied_object.data["id"]) do
|
||||||
object
|
object
|
||||||
|> Map.put("inReplyTo", replied_object.data["id"])
|
|> Map.put("inReplyTo", replied_object.data["id"])
|
||||||
|> Map.put("inReplyToAtomUri", object["inReplyToAtomUri"] || in_reply_to_id)
|
|> Map.put("inReplyToAtomUri", object["inReplyToAtomUri"] || in_reply_to_id)
|
||||||
|> Map.put("inReplyToStatusId", activity.id)
|
|> Map.put("inReplyToStatusId", activity.id)
|
||||||
|> Map.put("conversation", replied_object.data["context"] || object["conversation"])
|
|> Map.put("conversation", replied_object.data["context"] || object["conversation"])
|
||||||
|> Map.put("context", replied_object.data["context"] || object["conversation"])
|
|> Map.put("context", replied_object.data["context"] || object["conversation"])
|
||||||
|
else
|
||||||
|
e ->
|
||||||
|
Logger.error("Couldn't fetch #{object["inReplyTo"]} #{inspect(e)}")
|
||||||
|
object
|
||||||
|
end
|
||||||
|
|
||||||
e ->
|
e ->
|
||||||
Logger.error("Couldn't fetch #{object["inReplyTo"]} #{inspect(e)}")
|
Logger.error("Couldn't fetch #{object["inReplyTo"]} #{inspect(e)}")
|
||||||
|
Loading…
Reference in New Issue
Block a user