forked from AkkomaGang/akkoma
deprecation warning
changed namespace for activity expiration configuration
This commit is contained in:
parent
de4c935071
commit
629a8de9cb
4 changed files with 39 additions and 7 deletions
|
@ -2472,14 +2472,14 @@
|
|||
},
|
||||
%{
|
||||
group: :pleroma,
|
||||
key: Pleroma.ActivityExpiration,
|
||||
key: Pleroma.Workers.PurgeExpiredActivity,
|
||||
type: :group,
|
||||
description: "Expired activity settings",
|
||||
description: "Expired activities settings",
|
||||
children: [
|
||||
%{
|
||||
key: :enabled,
|
||||
type: :boolean,
|
||||
description: "Whether expired activities will be sent to the job queue to be deleted"
|
||||
description: "Enables expired activities addition & deletion"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -8,7 +8,7 @@ defmodule Pleroma.Config.DeprecationWarnings do
|
|||
require Logger
|
||||
alias Pleroma.Config
|
||||
|
||||
@type config_namespace() :: [atom()]
|
||||
@type config_namespace() :: atom() | [atom()]
|
||||
@type config_map() :: {config_namespace(), config_namespace(), String.t()}
|
||||
|
||||
@mrf_config_map [
|
||||
|
@ -57,6 +57,7 @@ def warn do
|
|||
check_media_proxy_whitelist_config()
|
||||
check_welcome_message_config()
|
||||
check_gun_pool_options()
|
||||
check_activity_expiration_config()
|
||||
end
|
||||
|
||||
def check_welcome_message_config do
|
||||
|
@ -158,4 +159,20 @@ def check_gun_pool_options do
|
|||
Config.put(:pools, updated_config)
|
||||
end
|
||||
end
|
||||
|
||||
@spec check_activity_expiration_config() :: :ok | nil
|
||||
def check_activity_expiration_config do
|
||||
warning_preface = """
|
||||
!!!DEPRECATION WARNING!!!
|
||||
Your config is using old namespace for activity expiration configuration. Setting should work for now, but you are advised to change to new namespace to prevent possible issues later:
|
||||
"""
|
||||
|
||||
move_namespace_and_warn(
|
||||
[
|
||||
{Pleroma.ActivityExpiration, Pleroma.Workers.PurgeExpiredActivity,
|
||||
"\n* `config :pleroma, Pleroma.ActivityExpiration` is now `config :pleroma, Pleroma.Workers.PurgeExpiredActivity`"}
|
||||
],
|
||||
warning_preface
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -7,6 +7,8 @@ defmodule Pleroma.Workers.PurgeExpiredActivity do
|
|||
|
||||
import Ecto.Query
|
||||
|
||||
alias Pleroma.Activity
|
||||
|
||||
def enqueue(args) do
|
||||
with true <- enabled?(),
|
||||
args when is_map(args) <- validate_expires_at(args) do
|
||||
|
@ -20,7 +22,7 @@ def enqueue(args) do
|
|||
|
||||
@impl true
|
||||
def perform(%Oban.Job{args: %{"activity_id" => id}}) do
|
||||
with %Pleroma.Activity{} = activity <- find_activity(id),
|
||||
with %Activity{} = activity <- find_activity(id),
|
||||
%Pleroma.User{} = user <- find_user(activity.object.data["actor"]),
|
||||
false <- pinned_by_actor?(activity, user) do
|
||||
Pleroma.Web.CommonAPI.delete(activity.id, user)
|
||||
|
@ -53,7 +55,7 @@ defp validate_expires_at(args) do
|
|||
end
|
||||
|
||||
defp find_activity(id) do
|
||||
with nil <- Pleroma.Activity.get_by_id_with_object(id) do
|
||||
with nil <- Activity.get_by_id_with_object(id) do
|
||||
{:error, :activity_not_found}
|
||||
end
|
||||
end
|
||||
|
@ -65,7 +67,7 @@ defp find_user(ap_id) do
|
|||
end
|
||||
|
||||
defp pinned_by_actor?(activity, user) do
|
||||
with true <- Pleroma.Activity.pinned_by_actor?(activity, user) do
|
||||
with true <- Activity.pinned_by_actor?(activity, user) do
|
||||
:pinned_by_actor
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
defmodule Pleroma.Repo.Migrations.RenameActivityExpirationSetting do
|
||||
use Ecto.Migration
|
||||
|
||||
def change do
|
||||
config = Pleroma.ConfigDB.get_by_params(%{group: :pleroma, key: Pleroma.ActivityExpiration})
|
||||
|
||||
if config do
|
||||
config
|
||||
|> Ecto.Changeset.change(key: Pleroma.Workers.PurgeExpiredActivity)
|
||||
|> Pleroma.Repo.update()
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue