aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEgor Kislitsyn <egor@kislitsyn.com>2020-01-22 20:53:06 +0400
committerEgor Kislitsyn <egor@kislitsyn.com>2020-01-22 20:53:06 +0400
commitaa0f0d4edd4205c2b1d7c4f5a885d57287f6379a (patch)
tree1d67f3b830fb8af75c2c8ab44e6a3edca8988faa
parentdf0b8f1d0802a2536bf436ff8157918929a183cc (diff)
downloadpleroma-aa0f0d4edd4205c2b1d7c4f5a885d57287f6379a.tar.gz
Disable NewUsersDigestEmail by default
-rw-r--r--config/config.exs2
-rw-r--r--config/test.exs2
-rw-r--r--lib/pleroma/workers/new_users_digest_worker.ex76
3 files changed, 43 insertions, 37 deletions
diff --git a/config/config.exs b/config/config.exs
index 53ea76dd3..3f0222f0e 100644
--- a/config/config.exs
+++ b/config/config.exs
@@ -581,6 +581,8 @@ config :pleroma, Pleroma.Emails.UserEmail,
text_muted_color: "#b9b9ba"
}
+config :pleroma, Pleroma.Emails.NewUsersDigestEmail, enabled: false
+
config :prometheus, Pleroma.Web.Endpoint.MetricsExporter, path: "/api/pleroma/app_metrics"
config :pleroma, Pleroma.ScheduledActivity,
diff --git a/config/test.exs b/config/test.exs
index 5c66a36f1..9da0ae484 100644
--- a/config/test.exs
+++ b/config/test.exs
@@ -97,6 +97,8 @@ config :pleroma, Pleroma.ReverseProxy.Client, Pleroma.ReverseProxy.ClientMock
config :pleroma, :modules, runtime_dir: "test/fixtures/modules"
+config :pleroma, Pleroma.Emails.NewUsersDigestEmail, enabled: true
+
if File.exists?("./config/test.secret.exs") do
import_config "test.secret.exs"
else
diff --git a/lib/pleroma/workers/new_users_digest_worker.ex b/lib/pleroma/workers/new_users_digest_worker.ex
index 24cc6bdf3..b776b2c79 100644
--- a/lib/pleroma/workers/new_users_digest_worker.ex
+++ b/lib/pleroma/workers/new_users_digest_worker.ex
@@ -13,44 +13,46 @@ defmodule Pleroma.Workers.NewUsersDigestWorker do
@impl Oban.Worker
def perform(_args, _job) do
- today = NaiveDateTime.utc_now() |> Timex.beginning_of_day()
-
- a_day_ago =
- today
- |> Timex.shift(days: -1)
- |> Timex.beginning_of_day()
-
- users_and_statuses =
- %{
- local: true,
- order_by: :inserted_at
- }
+ if Pleroma.Config.get([Pleroma.Emails.NewUsersDigestEmail, :enabled]) do
+ today = NaiveDateTime.utc_now() |> Timex.beginning_of_day()
+
+ a_day_ago =
+ today
+ |> Timex.shift(days: -1)
+ |> Timex.beginning_of_day()
+
+ users_and_statuses =
+ %{
+ local: true,
+ order_by: :inserted_at
+ }
+ |> User.Query.build()
+ |> where([u], u.inserted_at >= ^a_day_ago and u.inserted_at < ^today)
+ |> Repo.all()
+ |> Enum.map(fn user ->
+ latest_status =
+ Activity
+ |> Activity.Queries.by_actor(user.ap_id)
+ |> Activity.Queries.by_type("Create")
+ |> Activity.with_preloaded_object()
+ |> order_by(desc: :inserted_at)
+ |> limit(1)
+ |> Repo.one()
+
+ total_statuses =
+ Activity
+ |> Activity.Queries.by_actor(user.ap_id)
+ |> Activity.Queries.by_type("Create")
+ |> Repo.aggregate(:count, :id)
+
+ {user, total_statuses, latest_status}
+ end)
+
+ %{is_admin: true}
|> User.Query.build()
- |> where([u], u.inserted_at >= ^a_day_ago and u.inserted_at < ^today)
|> Repo.all()
- |> Enum.map(fn user ->
- latest_status =
- Activity
- |> Activity.Queries.by_actor(user.ap_id)
- |> Activity.Queries.by_type("Create")
- |> Activity.with_preloaded_object()
- |> order_by(desc: :inserted_at)
- |> limit(1)
- |> Repo.one()
-
- total_statuses =
- Activity
- |> Activity.Queries.by_actor(user.ap_id)
- |> Activity.Queries.by_type("Create")
- |> Repo.aggregate(:count, :id)
-
- {user, total_statuses, latest_status}
- end)
-
- %{is_admin: true}
- |> User.Query.build()
- |> Repo.all()
- |> Enum.map(&Pleroma.Emails.NewUsersDigestEmail.new_users(&1, users_and_statuses))
- |> Enum.each(&Pleroma.Emails.Mailer.deliver/1)
+ |> Enum.map(&Pleroma.Emails.NewUsersDigestEmail.new_users(&1, users_and_statuses))
+ |> Enum.each(&Pleroma.Emails.Mailer.deliver/1)
+ end
end
end