projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remote Timeline: add Streaming support
[akkoma]
/
lib
/
pleroma
/
web
/
activity_pub
/
mrf
/
activity_expiration_policy.ex
diff --git
a/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex
b/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex
index 1b88601611249ea494a3463d09e98df3ad71681e..bee47b4edd4b47e0931d1db953b6b2fd916f61ea 100644
(file)
--- a/
lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex
+++ b/
lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex
@@
-3,13
+3,13
@@
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy do
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy do
- @moduledoc "Adds expiration to all local activities"
+ @moduledoc "Adds expiration to all local
Create
activities"
@behaviour Pleroma.Web.ActivityPub.MRF
@impl true
@behaviour Pleroma.Web.ActivityPub.MRF
@impl true
- def filter(
%{"id" => id} =
activity) do
+ def filter(activity) do
activity =
activity =
- if
String.starts_with?(id, Pleroma.Web.Endpoint.url()
) do
+ if
note?(activity) and local?(activity
) do
maybe_add_expiration(activity)
else
activity
maybe_add_expiration(activity)
else
activity
@@
-21,12
+21,20
@@
defmodule Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy do
@impl true
def describe, do: {:ok, %{}}
@impl true
def describe, do: {:ok, %{}}
+ defp local?(%{"actor" => actor}) do
+ String.starts_with?(actor, Pleroma.Web.Endpoint.url())
+ end
+
+ defp note?(activity) do
+ match?(%{"type" => "Create", "object" => %{"type" => "Note"}}, activity)
+ end
+
defp maybe_add_expiration(activity) do
days = Pleroma.Config.get([:mrf_activity_expiration, :days], 365)
defp maybe_add_expiration(activity) do
days = Pleroma.Config.get([:mrf_activity_expiration, :days], 365)
- expires_at =
Naive
DateTime.utc_now() |> Timex.shift(days: days)
+ expires_at = DateTime.utc_now() |> Timex.shift(days: days)
with %{"expires_at" => existing_expires_at} <- activity,
with %{"expires_at" => existing_expires_at} <- activity,
- :lt <-
Naive
DateTime.compare(existing_expires_at, expires_at) do
+ :lt <- DateTime.compare(existing_expires_at, expires_at) do
activity
else
_ -> Map.put(activity, "expires_at", expires_at)
activity
else
_ -> Map.put(activity, "expires_at", expires_at)