projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'develop' into feature/1893-remote-emoji-packs-pagination
[akkoma]
/
lib
/
mix
/
tasks
/
pleroma
/
emoji.ex
diff --git
a/lib/mix/tasks/pleroma/emoji.ex
b/lib/mix/tasks/pleroma/emoji.ex
index 29a5fa99cacf8a1045c9ee34266668c96dae1c74..1750373f904629d54b31be02063b36a091962b0b 100644
(file)
--- a/
lib/mix/tasks/pleroma/emoji.ex
+++ b/
lib/mix/tasks/pleroma/emoji.ex
@@
-15,7
+15,7
@@
defmodule Mix.Tasks.Pleroma.Emoji do
{options, [], []} = parse_global_opts(args)
url_or_path = options[:manifest] || default_manifest()
{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 = [
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()
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
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]))
IO.puts(IO.ANSI.format(["Unpacking ", :bright, pack_name]))
@@
-183,7
+183,7
@@
defmodule Mix.Tasks.Pleroma.Emoji do
IO.puts("Downloading the pack and generating SHA256")
IO.puts("Downloading the pack and generating SHA256")
- binary_archive = Tesla.get!(client(), src).body
+ {:ok, %{body: binary_archive}} = Pleroma.HTTP.get(src)
archive_sha = :crypto.hash(:sha256, binary_archive) |> Base.encode16()
IO.puts("SHA256 is #{archive_sha}")
archive_sha = :crypto.hash(:sha256, binary_archive) |> Base.encode16()
IO.puts("SHA256 is #{archive_sha}")
@@
-237,14
+237,22
@@
defmodule Mix.Tasks.Pleroma.Emoji do
end
end
end
end
- defp fetch_and_decode(from) do
+ def run(["reload"]) do
+ start_pleroma()
+ Pleroma.Emoji.reload()
+ IO.puts("Emoji packs have been reloaded.")
+ end
+
+ defp fetch_and_decode!(from) do
with {:ok, json} <- fetch(from) do
Jason.decode!(json)
with {:ok, json} <- fetch(from) do
Jason.decode!(json)
+ else
+ {:error, error} -> raise "#{from} cannot be fetched. Error: #{error} occur."
end
end
defp fetch("http" <> _ = from) do
end
end
defp fetch("http" <> _ = from) do
- with {:ok, %{body: body}} <-
Tesla.get(client(),
from) do
+ with {:ok, %{body: body}} <-
Pleroma.HTTP.get(
from) do
{:ok, body}
end
end
{:ok, body}
end
end
@@
-263,13
+271,5
@@
defmodule Mix.Tasks.Pleroma.Emoji do
)
end
)
end
- defp client do
- middleware = [
- {Tesla.Middleware.FollowRedirects, [max_redirects: 3]}
- ]
-
- Tesla.client(middleware)
- end
-
defp default_manifest, do: Pleroma.Config.get!([:emoji, :default_manifest])
end
defp default_manifest, do: Pleroma.Config.get!([:emoji, :default_manifest])
end