diff options
author | lambda <pleromagit@rogerbraun.net> | 2018-06-14 07:20:54 +0000 |
---|---|---|
committer | lambda <pleromagit@rogerbraun.net> | 2018-06-14 07:20:54 +0000 |
commit | 2723fb5150f54b30657dd7a0bfa88702bc857173 (patch) | |
tree | 6ef9aa6cee11a85831d0172cfa736ed0749b731d | |
parent | 8c7fdcb31b1255f91493b8f2e0f86dfbbfa2ac85 (diff) | |
parent | 401e8af9437f8a53540b93fc80d659c15f06e137 (diff) | |
download | pleroma-2723fb5150f54b30657dd7a0bfa88702bc857173.tar.gz |
Merge branch 'bugfix/mrf-orphaning' into 'develop'
activitypub transmogrifier: handle activity lookup failure
Closes #156
See merge request pleroma/pleroma!216
-rw-r--r-- | lib/pleroma/web/activity_pub/transmogrifier.ex | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index f04f3c3c0..300e0fcdd 100644 --- 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)}") |