Auto join own events
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
This commit is contained in:
parent
e4b568b963
commit
60a51cd047
2 changed files with 14 additions and 1 deletions
|
@ -19,7 +19,9 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
|
|||
alias Pleroma.Repo
|
||||
alias Pleroma.Upload
|
||||
alias Pleroma.User
|
||||
alias Pleroma.Web.ActivityPub.Builder
|
||||
alias Pleroma.Web.ActivityPub.MRF
|
||||
alias Pleroma.Web.ActivityPub.Pipeline
|
||||
alias Pleroma.Web.ActivityPub.Transmogrifier
|
||||
alias Pleroma.Web.Streamer
|
||||
alias Pleroma.Web.WebFinger
|
||||
|
@ -319,6 +321,7 @@ defp do_create(%{to: to, actor: actor, context: context, object: object} = param
|
|||
_ <- notify_and_stream(activity),
|
||||
:ok <- maybe_schedule_poll_notifications(activity),
|
||||
:ok <- maybe_schedule_event_notifications(activity),
|
||||
:ok <- maybe_join_own_event(actor, activity),
|
||||
:ok <- maybe_federate(activity) do
|
||||
{:ok, activity}
|
||||
else
|
||||
|
@ -343,6 +346,16 @@ defp maybe_schedule_event_notifications(activity) do
|
|||
:ok
|
||||
end
|
||||
|
||||
defp maybe_join_own_event(actor, %{object: %{data: %{"type" => "Event"}} = object}) do
|
||||
{:ok, join_object, meta} = Builder.join(actor, object)
|
||||
|
||||
{:ok, _, _} = Pipeline.common_pipeline(join_object, Keyword.put(meta, :local, true))
|
||||
|
||||
:ok
|
||||
end
|
||||
|
||||
defp maybe_join_own_event(_, _), do: :ok
|
||||
|
||||
@spec listen(map()) :: {:ok, Activity.t()} | {:error, any()}
|
||||
def listen(%{to: to, actor: actor, context: context, object: object} = params) do
|
||||
additional = params[:additional] || %{}
|
||||
|
|
|
@ -337,7 +337,7 @@ def join(%User{} = user, event_id, params \\ %{}) do
|
|||
end
|
||||
end
|
||||
|
||||
def join_helper(user, id, participation_message) do
|
||||
defp join_helper(user, id, participation_message) do
|
||||
with {_, %Activity{object: object}} <- {:find_object, Activity.get_by_id_with_object(id)},
|
||||
{_, {:ok, join_object, meta}} <-
|
||||
{:build_object, Builder.join(user, object, participation_message)},
|
||||
|
|
Loading…
Reference in a new issue