X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Femoji.ex;h=f3f08cd9dcf15f119a50c25c227289e39a1fc499;hb=fb82f6fc7c5453e34e619c54a88e64e99deb58b4;hp=cc9713b5349a22951121a9b1983b787dbc753e18;hpb=763fc7b44fb5931f1a2f869d4c67a5ca9a0b5206;p=akkoma diff --git a/lib/pleroma/emoji.ex b/lib/pleroma/emoji.ex index cc9713b53..f3f08cd9d 100644 --- a/lib/pleroma/emoji.ex +++ b/lib/pleroma/emoji.ex @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Emoji do @moduledoc """ The emojis are loaded from: @@ -10,16 +14,16 @@ defmodule Pleroma.Emoji do """ use GenServer @ets __MODULE__.Ets - @ets_options [:set, :protected, :named_table, {:read_concurrency, true}] + @ets_options [:ordered_set, :protected, :named_table, {:read_concurrency, true}] @doc false - def start_link() do + def start_link do GenServer.start_link(__MODULE__, [], name: __MODULE__) end @doc "Reloads the emojis from disk." @spec reload() :: :ok - def reload() do + def reload do GenServer.call(__MODULE__, :reload) end @@ -34,18 +38,19 @@ defmodule Pleroma.Emoji do @doc "Returns all the emojos!!" @spec get_all() :: [{String.t(), String.t()}, ...] - def get_all() do + def get_all do :ets.tab2list(@ets) end @doc false def init(_) do @ets = :ets.new(@ets, @ets_options) - {:ok, nil, {:continue, :reload}} + GenServer.cast(self(), :reload) + {:ok, nil} end @doc false - def handle_continue(:reload, state) do + def handle_cast(:reload, state) do load() {:noreply, state} end @@ -67,7 +72,7 @@ defmodule Pleroma.Emoji do {:ok, state} end - defp load() do + defp load do emojis = (load_finmoji(Keyword.get(Application.get_env(:pleroma, :instance), :finmoji_enabled)) ++ load_from_file("config/emoji.txt") ++ @@ -152,7 +157,7 @@ defmodule Pleroma.Emoji do end) end - defp load_finmoji(_), do: :ok + defp load_finmoji(_), do: [] defp load_from_file(file) do if File.exists?(file) do @@ -164,7 +169,7 @@ defmodule Pleroma.Emoji do defp load_from_file_stream(stream) do stream - |> Stream.map(&String.strip/1) + |> Stream.map(&String.trim/1) |> Stream.map(fn line -> case String.split(line, ~r/,\s*/) do [name, file] -> {name, file}