Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into features/validators-audio2

This commit is contained in:
lain 2020-08-19 14:10:11 +02:00
commit 9aae342e7a
7 changed files with 34 additions and 19 deletions

View file

@ -194,7 +194,7 @@ amd64:
variables: &release-variables variables: &release-variables
MIX_ENV: prod MIX_ENV: prod
before_script: &before-release before_script: &before-release
- apt install cmake -y - apt-get update && apt-get install -y cmake
- echo "import Mix.Config" > config/prod.secret.exs - echo "import Mix.Config" > config/prod.secret.exs
- mix local.hex --force - mix local.hex --force
- mix local.rebar --force - mix local.rebar --force

View file

@ -14,7 +14,7 @@ defmodule Mix.Pleroma do
:swoosh, :swoosh,
:timex :timex
] ]
@cachex_children ["object", "user"] @cachex_children ["object", "user", "scrubber"]
@doc "Common functions to be reused in mix tasks" @doc "Common functions to be reused in mix tasks"
def start_pleroma do def start_pleroma do
Pleroma.Config.Holder.save_default() Pleroma.Config.Holder.save_default()

View file

@ -15,7 +15,7 @@ def run(["ls-packs" | args]) do
{options, [], []} = parse_global_opts(args) {options, [], []} = parse_global_opts(args)
url_or_path = options[:manifest] || default_manifest() url_or_path = options[:manifest] || default_manifest()
manifest = fetch_and_decode(url_or_path) manifest = fetch_and_decode!(url_or_path)
Enum.each(manifest, fn {name, info} -> Enum.each(manifest, fn {name, info} ->
to_print = [ to_print = [
@ -42,7 +42,7 @@ def run(["get-packs" | args]) do
url_or_path = options[:manifest] || default_manifest() url_or_path = options[:manifest] || default_manifest()
manifest = fetch_and_decode(url_or_path) manifest = fetch_and_decode!(url_or_path)
for pack_name <- pack_names do for pack_name <- pack_names do
if Map.has_key?(manifest, pack_name) do if Map.has_key?(manifest, pack_name) do
@ -92,7 +92,7 @@ def run(["get-packs" | args]) do
]) ])
) )
files = fetch_and_decode(files_loc) files = fetch_and_decode!(files_loc)
IO.puts(IO.ANSI.format(["Unpacking ", :bright, pack_name])) IO.puts(IO.ANSI.format(["Unpacking ", :bright, pack_name]))
@ -243,9 +243,11 @@ def run(["reload"]) do
IO.puts("Emoji packs have been reloaded.") IO.puts("Emoji packs have been reloaded.")
end end
defp fetch_and_decode(from) do defp fetch_and_decode!(from) do
with {:ok, json} <- fetch(from) do with {:ok, json} <- fetch(from) do
Jason.decode!(json) Jason.decode!(json)
else
{:error, error} -> raise "#{from} cannot be fetched. Error: #{error} occur."
end end
end end

View file

@ -107,6 +107,8 @@ def digest_email(user) do
|> Enum.filter(&(&1.activity.data["type"] == "Create")) |> Enum.filter(&(&1.activity.data["type"] == "Create"))
|> Enum.map(fn notification -> |> Enum.map(fn notification ->
object = Pleroma.Object.normalize(notification.activity) object = Pleroma.Object.normalize(notification.activity)
if not is_nil(object) do
object = update_in(object.data["content"], &format_links/1) object = update_in(object.data["content"], &format_links/1)
%{ %{
@ -114,18 +116,25 @@ def digest_email(user) do
object: object, object: object,
from: User.get_by_ap_id(notification.activity.actor) from: User.get_by_ap_id(notification.activity.actor)
} }
end
end) end)
|> Enum.filter(& &1)
followers = followers =
notifications notifications
|> Enum.filter(&(&1.activity.data["type"] == "Follow")) |> Enum.filter(&(&1.activity.data["type"] == "Follow"))
|> Enum.map(fn notification -> |> Enum.map(fn notification ->
from = User.get_by_ap_id(notification.activity.actor)
if not is_nil(from) do
%{ %{
data: notification, data: notification,
object: Pleroma.Object.normalize(notification.activity), object: Pleroma.Object.normalize(notification.activity),
from: User.get_by_ap_id(notification.activity.actor) from: User.get_by_ap_id(notification.activity.actor)
} }
end
end) end)
|> Enum.filter(& &1)
unless Enum.empty?(mentions) do unless Enum.empty?(mentions) do
styling = Config.get([__MODULE__, :styling]) styling = Config.get([__MODULE__, :styling])

View file

@ -14,10 +14,10 @@ defmodule Pleroma.Emails.MailerTest do
subject: "Pleroma test email", subject: "Pleroma test email",
to: [{"Test User", "user1@example.com"}] to: [{"Test User", "user1@example.com"}]
} }
setup do: clear_config([Pleroma.Emails.Mailer, :enabled]) setup do: clear_config([Pleroma.Emails.Mailer, :enabled], true)
test "not send email when mailer is disabled" do test "not send email when mailer is disabled" do
Pleroma.Config.put([Pleroma.Emails.Mailer, :enabled], false) clear_config([Pleroma.Emails.Mailer, :enabled], false)
Mailer.deliver(@email) Mailer.deliver(@email)
:timer.sleep(100) :timer.sleep(100)

View file

@ -17,6 +17,8 @@ defmodule Mix.Tasks.Pleroma.DigestTest do
:ok :ok
end end
setup do: clear_config([Pleroma.Emails.Mailer, :enabled], true)
describe "pleroma.digest test" do describe "pleroma.digest test" do
test "Sends digest to the given user" do test "Sends digest to the given user" do
user1 = insert(:user) user1 = insert(:user)

View file

@ -16,6 +16,8 @@ defmodule Mix.Tasks.Pleroma.EmailTest do
:ok :ok
end end
setup do: clear_config([Pleroma.Emails.Mailer, :enabled], true)
describe "pleroma.email test" do describe "pleroma.email test" do
test "Sends test email with no given address" do test "Sends test email with no given address" do
mail_to = Config.get([:instance, :email]) mail_to = Config.get([:instance, :email])