logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
commit: 2723fb5150f54b30657dd7a0bfa88702bc857173
parent: 8c7fdcb31b1255f91493b8f2e0f86dfbbfa2ac85
Author: lambda <pleromagit@rogerbraun.net>
Date:   Thu, 14 Jun 2018 07:20:54 +0000

Merge branch 'bugfix/mrf-orphaning' into 'develop'

activitypub transmogrifier: handle activity lookup failure

Closes #156

See merge request pleroma/pleroma!216

Diffstat:

Mlib/pleroma/web/activity_pub/transmogrifier.ex21+++++++++++++--------
1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -30,14 +30,19 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do when not is_nil(in_reply_to_id) do case ActivityPub.fetch_object_from_id(in_reply_to_id) do {:ok, replied_object} -> - activity = Activity.get_create_activity_by_object_ap_id(replied_object.data["id"]) - - object - |> Map.put("inReplyTo", replied_object.data["id"]) - |> Map.put("inReplyToAtomUri", object["inReplyToAtomUri"] || in_reply_to_id) - |> Map.put("inReplyToStatusId", activity.id) - |> Map.put("conversation", replied_object.data["context"] || object["conversation"]) - |> Map.put("context", replied_object.data["context"] || object["conversation"]) + with %Activity{} = activity <- + Activity.get_create_activity_by_object_ap_id(replied_object.data["id"]) do + object + |> Map.put("inReplyTo", replied_object.data["id"]) + |> Map.put("inReplyToAtomUri", object["inReplyToAtomUri"] || in_reply_to_id) + |> Map.put("inReplyToStatusId", activity.id) + |> Map.put("conversation", 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 -> Logger.error("Couldn't fetch #{object["inReplyTo"]} #{inspect(e)}")