summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Strizhakov <alex.strizhakov@gmail.com>2020-03-18 11:59:00 +0300
committerAlexander Strizhakov <alex.strizhakov@gmail.com>2020-03-20 20:39:59 +0300
commit160d4e6af6d0a41f3147ddab87d93b4b22bb6571 (patch)
tree7e811fb95985824a9f4927f2d64bf0f540a77a19
parent952cb589f47972bba8f9b94b2935a60f05e21bd3 (diff)
fix for doubled path on importfix/1604-emoji-path
-rw-r--r--lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex20
-rw-r--r--test/web/pleroma_api/controllers/emoji_api_controller_test.exs10
2 files changed, 24 insertions, 6 deletions
diff --git a/lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex b/lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex
index 03e95e020..196d325e6 100644
--- a/lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex
+++ b/lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex
@@ -615,7 +615,7 @@ keeping it in cache for #{div(cache_ms, 1000)}s")
defp files_for_pack(emoji_txt_path, dir_path) do
if File.exists?(emoji_txt_path) do
# There's an emoji.txt file, it's likely from a pack installed by the pack manager.
- # Make a pack.json file from the contents of that emoji.txt fileh
+ # Make a pack.json file from the contents of that emoji.txt file
# FIXME: Copy-pasted from Pleroma.Emoji/load_from_file_stream/2
@@ -627,11 +627,23 @@ keeping it in cache for #{div(cache_ms, 1000)}s")
case String.split(line, ~r/,\s*/) do
# This matches both strings with and without tags
# and we don't care about tags here
- [name, file | _] -> {name, file}
- _ -> nil
+ [name, file | _] ->
+ file_dir_name = Path.dirname(file)
+
+ file =
+ if String.ends_with?(dir_path, file_dir_name) do
+ Path.basename(file)
+ else
+ file
+ end
+
+ {name, file}
+
+ _ ->
+ nil
end
end)
- |> Enum.filter(fn x -> not is_nil(x) end)
+ |> Enum.filter(& &1)
|> Enum.into(%{})
else
# If there's no emoji.txt, assume all files
diff --git a/test/web/pleroma_api/controllers/emoji_api_controller_test.exs b/test/web/pleroma_api/controllers/emoji_api_controller_test.exs
index 4b9f5cf9a..3d1fa0d94 100644
--- a/test/web/pleroma_api/controllers/emoji_api_controller_test.exs
+++ b/test/web/pleroma_api/controllers/emoji_api_controller_test.exs
@@ -448,7 +448,12 @@ defmodule Pleroma.Web.PleromaAPI.EmojiAPIControllerTest do
File.rm!("#{@emoji_dir_path}/test_pack_for_import/pack.json")
refute File.exists?("#{@emoji_dir_path}/test_pack_for_import/pack.json")
- emoji_txt_content = "blank, blank.png, Fun\n\nblank2, blank.png"
+ emoji_txt_content = """
+ blank, blank.png, Fun
+ blank2, blank.png
+ foo, /emoji/test_pack_for_import/blank.png
+ bar
+ """
File.write!("#{@emoji_dir_path}/test_pack_for_import/emoji.txt", emoji_txt_content)
@@ -460,7 +465,8 @@ defmodule Pleroma.Web.PleromaAPI.EmojiAPIControllerTest do
assert resp["test_pack_for_import"]["files"] == %{
"blank" => "blank.png",
- "blank2" => "blank.png"
+ "blank2" => "blank.png",
+ "foo" => "blank.png"
}
end
end