projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'stable' of git.pleroma.social:pleroma/pleroma into pleroma-2.1-rc0
[akkoma]
/
lib
/
pleroma
/
web
/
activity_pub
/
side_effects.ex
diff --git
a/lib/pleroma/web/activity_pub/side_effects.ex
b/lib/pleroma/web/activity_pub/side_effects.ex
index 14a1da0c125d7d378e82d061189f2c2ad1160116..a5e2323bd61d5f2299cb79b37c9c042b92847f26 100644
(file)
--- a/
lib/pleroma/web/activity_pub/side_effects.ex
+++ b/
lib/pleroma/web/activity_pub/side_effects.ex
@@
-23,6
+23,8
@@
defmodule Pleroma.Web.ActivityPub.SideEffects do
alias Pleroma.Web.Streamer
alias Pleroma.Workers.BackgroundWorker
alias Pleroma.Web.Streamer
alias Pleroma.Workers.BackgroundWorker
+ require Logger
+
def handle(object, meta \\ [])
# Task this handles
def handle(object, meta \\ [])
# Task this handles
@@
-55,7
+57,7
@@
defmodule Pleroma.Web.ActivityPub.SideEffects do
# Task this handles
# - Rejects all existing follow activities for this person
# - Updates the follow state
# Task this handles
# - Rejects all existing follow activities for this person
# - Updates the follow state
- # - Dismisses notificatio
s
+ # - Dismisses notificatio
n
def handle(
%{
data: %{
def handle(
%{
data: %{
@@
-251,13
+253,15
@@
defmodule Pleroma.Web.ActivityPub.SideEffects do
# - Stream out the activity
def handle(%{data: %{"type" => "Delete", "object" => deleted_object}} = object, meta) do
deleted_object =
# - Stream out the activity
def handle(%{data: %{"type" => "Delete", "object" => deleted_object}} = object, meta) do
deleted_object =
- Object.normalize(deleted_object, false) || User.get_cached_by_ap_id(deleted_object)
+ Object.normalize(deleted_object, false) ||
+ User.get_cached_by_ap_id(deleted_object)
result =
case deleted_object do
%Object{} ->
with {:ok, deleted_object, activity} <- Object.delete(deleted_object),
result =
case deleted_object do
%Object{} ->
with {:ok, deleted_object, activity} <- Object.delete(deleted_object),
- %User{} = user <- User.get_cached_by_ap_id(deleted_object.data["actor"]) do
+ {_, actor} when is_binary(actor) <- {:actor, deleted_object.data["actor"]},
+ %User{} = user <- User.get_cached_by_ap_id(actor) do
User.remove_pinnned_activity(user, activity)
{:ok, user} = ActivityPub.decrease_note_count_if_public(user, deleted_object)
User.remove_pinnned_activity(user, activity)
{:ok, user} = ActivityPub.decrease_note_count_if_public(user, deleted_object)
@@
-271,6
+275,10
@@
defmodule Pleroma.Web.ActivityPub.SideEffects do
ActivityPub.stream_out(object)
ActivityPub.stream_out_participations(deleted_object, user)
:ok
ActivityPub.stream_out(object)
ActivityPub.stream_out_participations(deleted_object, user)
:ok
+ else
+ {:actor, _} ->
+ Logger.error("The object doesn't have an actor: #{inspect(deleted_object)}")
+ :no_object_actor
end
%User{} ->
end
%User{} ->
@@
-332,7
+340,8
@@
defmodule Pleroma.Web.ActivityPub.SideEffects do
end
end
end
end
- def handle_object_creation(%{"type" => "Question"} = object, meta) do
+ def handle_object_creation(%{"type" => objtype} = object, meta)
+ when objtype in ~w[Audio Question Event] do
with {:ok, object, meta} <- Pipeline.common_pipeline(object, meta) do
{:ok, object, meta}
end
with {:ok, object, meta} <- Pipeline.common_pipeline(object, meta) do
{:ok, object, meta}
end