collection, and so on.
"""
alias Pleroma.Activity
- alias Pleroma.Activity.Ir.Topics
alias Pleroma.Chat
alias Pleroma.Chat.MessageReference
alias Pleroma.FollowingRelationship
%User{} = user <- User.get_cached_by_ap_id(activity.data["actor"]) do
{:ok, notifications} = Notification.create_notifications(activity, do_send: false)
{:ok, _user} = ActivityPub.increase_note_count_if_public(user, object)
+ {:ok, _user} = ActivityPub.update_last_status_at_if_public(user, object)
- if in_reply_to = object.data["inReplyTo"] && object.data["type"] != "Answer" do
+ if in_reply_to = object.data["type"] != "Answer" && object.data["inReplyTo"] do
Object.increase_replies_count(in_reply_to)
end
meta
|> add_notifications(notifications)
+ ap_streamer().stream_out(activity)
+
{:ok, activity, meta}
else
e -> Repo.rollback(e)
if !User.is_internal_user?(user) do
Notification.create_notifications(object)
- object
- |> Topics.get_activity_topics()
- |> Streamer.stream(object)
+ ap_streamer().stream_out(object)
end
{:ok, object, meta}
end
@impl true
+ def handle_after_transaction(%Pleroma.Activity{data: %{"type" => "Create"}} = activity) do
+ Pleroma.Elasticsearch.put_by_id(:activity, activity.id)
+ end
+
+ def handle_after_transaction(%Pleroma.Activity{
+ data: %{"type" => "Delete", "deleted_activity_id" => id}
+ }) do
+ Pleroma.Elasticsearch.delete_by_id(:activity, id)
+ end
+
+ def handle_after_transaction(%Pleroma.Activity{}) do
+ :ok
+ end
+
+ def handle_after_transaction(%Pleroma.Object{}) do
+ :ok
+ end
+
def handle_after_transaction(meta) do
meta
|> send_notifications()