projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'upstream/develop' into restrict-domain
[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 5a02f1d69ec6a9a62ba12ba0054c1f6a2839566c..2eec0ce86c4dfd7f2b1b10ded560e704d0f17906 100644
(file)
--- a/
lib/pleroma/web/activity_pub/side_effects.ex
+++ b/
lib/pleroma/web/activity_pub/side_effects.ex
@@
-1,3
+1,7
@@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
defmodule Pleroma.Web.ActivityPub.SideEffects do
@moduledoc """
This module looks at an inserted object and executes the side effects that it
defmodule Pleroma.Web.ActivityPub.SideEffects do
@moduledoc """
This module looks at an inserted object and executes the side effects that it
@@
-7,7
+11,6
@@
defmodule Pleroma.Web.ActivityPub.SideEffects do
"""
alias Pleroma.Activity
alias Pleroma.Activity.Ir.Topics
"""
alias Pleroma.Activity
alias Pleroma.Activity.Ir.Topics
- alias Pleroma.ActivityExpiration
alias Pleroma.Chat
alias Pleroma.Chat.MessageReference
alias Pleroma.FollowingRelationship
alias Pleroma.Chat
alias Pleroma.Chat.MessageReference
alias Pleroma.FollowingRelationship
@@
-23,6
+26,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
@@
-186,10
+191,6
@@
defmodule Pleroma.Web.ActivityPub.SideEffects do
Object.increase_replies_count(in_reply_to)
end
Object.increase_replies_count(in_reply_to)
end
- if expires_at = activity.data["expires_at"] do
- ActivityExpiration.create(activity, expires_at)
- end
-
BackgroundWorker.enqueue("fetch_data_for_activity", %{"activity_id" => activity.id})
meta =
BackgroundWorker.enqueue("fetch_data_for_activity", %{"activity_id" => activity.id})
meta =
@@
-251,13
+252,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
+274,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
+339,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 Video Question Event Article] 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