diff options
author | Roman Chvanikov <chvanikoff@pm.me> | 2020-09-08 15:13:50 +0300 |
---|---|---|
committer | Roman Chvanikov <chvanikoff@pm.me> | 2020-09-08 15:13:50 +0300 |
commit | e3f845b24363cd867ab85b7297f2d34bfa16b13f (patch) | |
tree | 8469abff44135128910a19b3b976bc1edb3b7971 /lib/pleroma/web/common_api/common_api.ex | |
parent | f6b250fb8d13f6788c1ecc6c1287e76febbfd888 (diff) | |
download | pleroma-e3f845b24363cd867ab85b7297f2d34bfa16b13f.tar.gz |
Add expiring mutes for activities
Diffstat (limited to 'lib/pleroma/web/common_api/common_api.ex')
-rw-r--r-- | lib/pleroma/web/common_api/common_api.ex | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex index 4ab533658..b217c4d10 100644 --- a/lib/pleroma/web/common_api/common_api.ex +++ b/lib/pleroma/web/common_api/common_api.ex @@ -451,9 +451,19 @@ defmodule Pleroma.Web.CommonAPI do end end - def add_mute(user, activity) do + def add_mute(user, activity, params \\ %{}) do + expires_in = Map.get(params, :expires_in, 0) + with {:ok, _} <- ThreadMute.add_mute(user.id, activity.data["context"]), _ <- Pleroma.Notification.mark_context_as_read(user, activity.data["context"]) do + if expires_in > 0 do + Pleroma.Workers.MuteExpireWorker.enqueue( + "unmute_conversation", + %{"user_id" => user.id, "activity_id" => activity.id}, + schedule_in: expires_in + ) + end + {:ok, activity} else {:error, _} -> {:error, dgettext("errors", "conversation is already muted")} |