logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git

digest.ex (1095B)


  1. # Pleroma: A lightweight social networking server
  2. # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
  3. # SPDX-License-Identifier: AGPL-3.0-only
  4. defmodule Mix.Tasks.Pleroma.Digest do
  5. use Mix.Task
  6. import Mix.Pleroma
  7. @shortdoc "Manages digest emails"
  8. @moduledoc File.read!("docs/administration/CLI_tasks/digest.md")
  9. def run(["test", nickname | opts]) do
  10. Mix.Pleroma.start_pleroma()
  11. user = Pleroma.User.get_by_nickname(nickname)
  12. last_digest_emailed_at =
  13. with [date] <- opts,
  14. {:ok, datetime} <- Timex.parse(date, "{YYYY}-{0M}-{0D}") do
  15. datetime
  16. else
  17. _ -> user.inserted_at
  18. end
  19. patched_user = %{user | last_digest_emailed_at: last_digest_emailed_at}
  20. with %Swoosh.Email{} = email <- Pleroma.Emails.UserEmail.digest_email(patched_user) do
  21. {:ok, _} = Pleroma.Emails.Mailer.deliver(email)
  22. shell_info("Digest email have been sent to #{nickname} (#{user.email})")
  23. else
  24. _ ->
  25. shell_info("Couldn't find any mentions for #{nickname} since #{last_digest_emailed_at}")
  26. end
  27. end
  28. end