summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Strizhakov <alex.strizhakov@gmail.com>2020-08-25 09:10:45 +0300
committerrinpatch <rinpatch@sdf.org>2020-09-10 21:50:41 +0300
commit629a8de9cb2ba2cc2d09679862a24031f34abc2f (patch)
tree7999738f7edef3105b644b42f1efcbf9dd52443f
parentde4c935071a47c78d873484b202e09dce5399570 (diff)
deprecation warning
changed namespace for activity expiration configuration
-rw-r--r--config/description.exs6
-rw-r--r--lib/pleroma/config/deprecation_warnings.ex19
-rw-r--r--lib/pleroma/workers/purge_expired_activity.ex8
-rw-r--r--priv/repo/migrations/20200824115541_rename_activity_expiration_setting.exs13
4 files changed, 39 insertions, 7 deletions
diff --git a/config/description.exs b/config/description.exs
index 6ce27278c..1253944de 100644
--- a/config/description.exs
+++ b/config/description.exs
@@ -2472,14 +2472,14 @@ config :pleroma, :config_description, [
},
%{
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"
}
]
},
diff --git a/lib/pleroma/config/deprecation_warnings.ex b/lib/pleroma/config/deprecation_warnings.ex
index 2bfe4ddba..412d55a77 100644
--- a/lib/pleroma/config/deprecation_warnings.ex
+++ b/lib/pleroma/config/deprecation_warnings.ex
@@ -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 @@ defmodule Pleroma.Config.DeprecationWarnings 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 @@ defmodule Pleroma.Config.DeprecationWarnings 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
diff --git a/lib/pleroma/workers/purge_expired_activity.ex b/lib/pleroma/workers/purge_expired_activity.ex
index ba0053008..44a8ad0b9 100644
--- a/lib/pleroma/workers/purge_expired_activity.ex
+++ b/lib/pleroma/workers/purge_expired_activity.ex
@@ -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 @@ defmodule Pleroma.Workers.PurgeExpiredActivity 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 @@ defmodule Pleroma.Workers.PurgeExpiredActivity 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 @@ defmodule Pleroma.Workers.PurgeExpiredActivity 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
diff --git a/priv/repo/migrations/20200824115541_rename_activity_expiration_setting.exs b/priv/repo/migrations/20200824115541_rename_activity_expiration_setting.exs
new file mode 100644
index 000000000..241882ef6
--- /dev/null
+++ b/priv/repo/migrations/20200824115541_rename_activity_expiration_setting.exs
@@ -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