X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fuser.ex;h=aa675a521f68713449715248f4b7b3be145bbf86;hb=a3bb2e5474ee068bf375b24df8906e51654c9699;hp=99358ddafbc2444dc29c00cbed795c568648fa4e;hpb=3126f8a334e4f0aeb6aad59e22c8f8c1ac9ec668;p=akkoma diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 99358ddaf..aa675a521 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -29,7 +29,9 @@ defmodule Pleroma.User do alias Pleroma.UserRelationship alias Pleroma.Web alias Pleroma.Web.ActivityPub.ActivityPub + alias Pleroma.Web.ActivityPub.Builder alias Pleroma.Web.ActivityPub.ObjectValidators.Types + alias Pleroma.Web.ActivityPub.Pipeline alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.CommonAPI alias Pleroma.Web.CommonAPI.Utils, as: CommonUtils @@ -1552,20 +1554,14 @@ defmodule Pleroma.User do |> ActivityPub.delete() end - defp delete_activity(%{data: %{"type" => "Like"}} = activity) do - object = Object.normalize(activity) + defp delete_activity(%{data: %{"type" => type}} = activity) when type in ["Like", "Announce"] do + actor = + activity.actor + |> get_cached_by_ap_id() - activity.actor - |> get_cached_by_ap_id() - |> ActivityPub.unlike(object) - end - - defp delete_activity(%{data: %{"type" => "Announce"}} = activity) do - object = Object.normalize(activity) + {:ok, undo, _} = Builder.undo(actor, activity) - activity.actor - |> get_cached_by_ap_id() - |> ActivityPub.unannounce(object) + Pipeline.common_pipeline(undo, local: true) end defp delete_activity(_activity), do: "Doing nothing"