diff options
| author | lain <lain@soykaf.club> | 2019-08-08 14:38:33 +0000 | 
|---|---|---|
| committer | lain <lain@soykaf.club> | 2019-08-08 14:38:33 +0000 | 
| commit | 29807ef6a5b43a528ffca08b4f721b251f331c8d (patch) | |
| tree | 76930c3a3dc12b95bcb57a9b4832f861dd68d960 /lib/mix/tasks | |
| parent | b18234e04c76daa564e0d8157dcd09566485da24 (diff) | |
| parent | 9d4f34fbcb1a8e2eca424b3a3374c9f9af972574 (diff) | |
| download | pleroma-29807ef6a5b43a528ffca08b4f721b251f331c8d.tar.gz pleroma-29807ef6a5b43a528ffca08b4f721b251f331c8d.zip | |
Merge branch 'feature/digest-email' into 'develop'
Feature/digest email
See merge request pleroma/pleroma!1078
Diffstat (limited to 'lib/mix/tasks')
| -rw-r--r-- | lib/mix/tasks/pleroma/digest.ex | 33 | ||||
| -rw-r--r-- | lib/mix/tasks/pleroma/instance.ex | 2 | 
2 files changed, 35 insertions, 0 deletions
| diff --git a/lib/mix/tasks/pleroma/digest.ex b/lib/mix/tasks/pleroma/digest.ex new file mode 100644 index 000000000..81c207e10 --- /dev/null +++ b/lib/mix/tasks/pleroma/digest.ex @@ -0,0 +1,33 @@ +defmodule Mix.Tasks.Pleroma.Digest do +  use Mix.Task + +  @shortdoc "Manages digest emails" +  @moduledoc """ +  Manages digest emails + +  ## Send digest email since given date (user registration date by default) +  ignoring user activity status. + +  ``mix pleroma.digest test <nickname> <since_date>`` + +  Example: ``mix pleroma.digest test donaldtheduck 2019-05-20`` +  """ +  def run(["test", nickname | opts]) do +    Mix.Pleroma.start_pleroma() + +    user = Pleroma.User.get_by_nickname(nickname) + +    last_digest_emailed_at = +      with [date] <- opts, +           {:ok, datetime} <- Timex.parse(date, "{YYYY}-{0M}-{0D}") do +        datetime +      else +        _ -> user.inserted_at +      end + +    patched_user = %{user | last_digest_emailed_at: last_digest_emailed_at} + +    _user = Pleroma.DigestEmailWorker.perform(patched_user) +    Mix.shell().info("Digest email have been sent to #{nickname} (#{user.email})") +  end +end diff --git a/lib/mix/tasks/pleroma/instance.ex b/lib/mix/tasks/pleroma/instance.ex index 9080adb52..b9b1991c2 100644 --- a/lib/mix/tasks/pleroma/instance.ex +++ b/lib/mix/tasks/pleroma/instance.ex @@ -183,6 +183,7 @@ defmodule Mix.Tasks.Pleroma.Instance do          )        secret = :crypto.strong_rand_bytes(64) |> Base.encode64() |> binary_part(0, 64) +      jwt_secret = :crypto.strong_rand_bytes(64) |> Base.encode64() |> binary_part(0, 64)        signing_salt = :crypto.strong_rand_bytes(8) |> Base.encode64() |> binary_part(0, 8)        {web_push_public_key, web_push_private_key} = :crypto.generate_key(:ecdh, :prime256v1)        template_dir = Application.app_dir(:pleroma, "priv") <> "/templates" @@ -200,6 +201,7 @@ defmodule Mix.Tasks.Pleroma.Instance do            dbuser: dbuser,            dbpass: dbpass,            secret: secret, +          jwt_secret: jwt_secret,            signing_salt: signing_salt,            web_push_public_key: Base.url_encode64(web_push_public_key, padding: false),            web_push_private_key: Base.url_encode64(web_push_private_key, padding: false), | 
