- defp load do
- static_path = Path.join(:code.priv_dir(:pleroma), "static")
-
- emoji_dir_path =
- Path.join([
- static_path,
- Pleroma.Config.get!([:instance, :static_dir]),
- "emoji"
- ])
-
- case File.ls(emoji_dir_path) do
- {:error, :enoent} ->
- # The custom emoji directory doesn't exist,
- # don't do anything
- nil
-
- {:error, e} ->
- # There was some other error
- Logger.error("Could not access the custom emoji directory #{emoji_dir_path}: #{e}")
-
- {:ok, packs} ->
- # Print the packs we've found
- Logger.info("Found emoji packs: #{Enum.join(packs, ", ")}")
-
- # compat thing for old custom emoji handling
- shortcode_globs = Application.get_env(:pleroma, :emoji)[:shortcode_globs] || []
-
- emojis =
- # Add the things fro
- # Deprecated?
- (Enum.flat_map(
- packs,
- fn pack -> load_from_file(Path.join([emoji_dir_path, pack, "emoji.txt"])) end
- ) ++
- load_from_file("config/emoji.txt") ++
- load_from_file("config/custom_emoji.txt") ++
- load_from_globs(shortcode_globs))
- |> Enum.reject(fn value -> value == nil end)
-
- true = :ets.insert(@ets, emojis)
- end
-
- :ok
- end
-
- defp load_from_file(file) do
- if File.exists?(file) do
- load_from_file_stream(File.stream!(file))
- else
- []
- end