configurable lifetime for ephemeral activities
This commit is contained in:
parent
4954667fb2
commit
2c2094d4b2
5 changed files with 26 additions and 6 deletions
|
@ -654,7 +654,7 @@ config :pleroma, :rate_limit,
|
|||
account_confirmation_resend: {8_640_000, 5},
|
||||
ap_routes: {60_000, 15}
|
||||
|
||||
config :pleroma, Pleroma.Workers.PurgeExpiredActivity, enabled: true
|
||||
config :pleroma, Pleroma.Workers.PurgeExpiredActivity, enabled: true, min_lifetime: 600
|
||||
|
||||
config :pleroma, Pleroma.Plugs.RemoteIp, enabled: true
|
||||
|
||||
|
|
|
@ -2480,6 +2480,12 @@ config :pleroma, :config_description, [
|
|||
key: :enabled,
|
||||
type: :boolean,
|
||||
description: "Enables expired activities addition & deletion"
|
||||
},
|
||||
%{
|
||||
key: :min_lifetime,
|
||||
type: :integer,
|
||||
description: "Minimum lifetime for ephemeral activity (in seconds)",
|
||||
suggestions: [600]
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -1091,3 +1091,16 @@ config :pleroma, :frontends,
|
|||
```
|
||||
|
||||
This would serve the frontend from the the folder at `$instance_static/frontends/pleroma/stable`. You have to copy the frontend into this folder yourself. You can choose the name and ref any way you like, but they will be used by mix tasks to automate installation in the future, the name referring to the project and the ref referring to a commit.
|
||||
|
||||
## Ephemeral activities
|
||||
|
||||
Settings to enable and configure expiration for ephemeral activities
|
||||
|
||||
* `:enabled` - enables ephemeral activities creation
|
||||
* `:min_lifetime` - minimum lifetime for ephemeral activities (in seconds). Default: 10 minutes.
|
||||
|
||||
Example:
|
||||
|
||||
```elixir
|
||||
config :pleroma, Pleroma.Workers.PurgeExpiredActivity, enabled: true, min_lifetime: 600
|
||||
```
|
||||
|
|
|
@ -77,6 +77,7 @@ defmodule Pleroma.Workers.PurgeExpiredActivity do
|
|||
def expires_late_enough?(scheduled_at) do
|
||||
now = DateTime.utc_now()
|
||||
diff = DateTime.diff(scheduled_at, now, :millisecond)
|
||||
diff > :timer.hours(1)
|
||||
min_lifetime = Pleroma.Config.get([__MODULE__, :min_lifetime], 600)
|
||||
diff > :timer.seconds(min_lifetime)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -129,8 +129,8 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
|
|||
test "it fails to create a status if `expires_in` is less or equal than an hour", %{
|
||||
conn: conn
|
||||
} do
|
||||
# 1 hour
|
||||
expires_in = 60 * 60
|
||||
# 1 minute
|
||||
expires_in = 1 * 60
|
||||
|
||||
assert %{"error" => "Expiry date is too soon"} =
|
||||
conn
|
||||
|
@ -141,8 +141,8 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
|
|||
})
|
||||
|> json_response_and_validate_schema(422)
|
||||
|
||||
# 30 minutes
|
||||
expires_in = 30 * 60
|
||||
# 5 minutes
|
||||
expires_in = 5 * 60
|
||||
|
||||
assert %{"error" => "Expiry date is too soon"} =
|
||||
conn
|
||||
|
|
Loading…
Reference in a new issue