Browse Source

fixes for mix tasks

- fix for `mix pleroma.database update_users_following_followers_counts`
- raise error, if fetch was unsuccessful in emoji tasks
- fix for `pleroma.digest test` task
matrix-explorations
Alexander Strizhakov 3 years ago
parent
commit
4727030f59
No known key found for this signature in database GPG Key ID: 22896A53AEF1381
3 changed files with 27 additions and 16 deletions
  1. +1
    -1
      lib/mix/pleroma.ex
  2. +6
    -4
      lib/mix/tasks/pleroma/emoji.ex
  3. +20
    -11
      lib/pleroma/emails/user_email.ex

+ 1
- 1
lib/mix/pleroma.ex View File

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


+ 6
- 4
lib/mix/tasks/pleroma/emoji.ex View File

@@ -15,7 +15,7 @@ defmodule Mix.Tasks.Pleroma.Emoji do
{options, [], []} = parse_global_opts(args)

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} ->
to_print = [
@@ -42,7 +42,7 @@ defmodule Mix.Tasks.Pleroma.Emoji do

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
if Map.has_key?(manifest, pack_name) do
@@ -92,7 +92,7 @@ defmodule Mix.Tasks.Pleroma.Emoji do
])
)

files = fetch_and_decode(files_loc)
files = fetch_and_decode!(files_loc)

IO.puts(IO.ANSI.format(["Unpacking ", :bright, pack_name]))

@@ -243,9 +243,11 @@ defmodule Mix.Tasks.Pleroma.Emoji do
IO.puts("Emoji packs have been reloaded.")
end

defp fetch_and_decode(from) do
defp fetch_and_decode!(from) do
with {:ok, json} <- fetch(from) do
Jason.decode!(json)
else
{:error, error} -> raise "#{from} cannot be fetched. Error: #{error} occur."
end
end



+ 20
- 11
lib/pleroma/emails/user_email.ex View File

@@ -107,25 +107,34 @@ defmodule Pleroma.Emails.UserEmail do
|> Enum.filter(&(&1.activity.data["type"] == "Create"))
|> Enum.map(fn notification ->
object = Pleroma.Object.normalize(notification.activity)
object = update_in(object.data["content"], &format_links/1)

%{
data: notification,
object: object,
from: User.get_by_ap_id(notification.activity.actor)
}
if not is_nil(object) do
object = update_in(object.data["content"], &format_links/1)

%{
data: notification,
object: object,
from: User.get_by_ap_id(notification.activity.actor)
}
end
end)
|> Enum.filter(& &1)

followers =
notifications
|> Enum.filter(&(&1.activity.data["type"] == "Follow"))
|> Enum.map(fn notification ->
%{
data: notification,
object: Pleroma.Object.normalize(notification.activity),
from: User.get_by_ap_id(notification.activity.actor)
}
from = User.get_by_ap_id(notification.activity.actor)

if not is_nil(from) do
%{
data: notification,
object: Pleroma.Object.normalize(notification.activity),
from: User.get_by_ap_id(notification.activity.actor)
}
end
end)
|> Enum.filter(& &1)

unless Enum.empty?(mentions) do
styling = Config.get([__MODULE__, :styling])


Loading…
Cancel
Save