Merge branch 'refactor/db-not-null-constraints-for-moderation_log' into 'develop'
[akkoma] / lib / pleroma / emoji.ex
index ab6ba7d6a14997a3ccc6fef8154e4bb9aa6a58de..bafad2ae9fa915a947ed24fae8cf2f8c57e6e3a2 100644 (file)
@@ -21,6 +21,21 @@ defmodule Pleroma.Emoji do
     {:read_concurrency, true}
   ]
 
+  defstruct [:code, :file, :tags, :safe_code, :safe_file]
+
+  @doc "Build emoji struct"
+  def build({code, file, tags}) do
+    %__MODULE__{
+      code: code,
+      file: file,
+      tags: tags,
+      safe_code: Pleroma.HTML.strip_tags(code),
+      safe_file: Pleroma.HTML.strip_tags(file)
+    }
+  end
+
+  def build({code, file}), do: build({code, file, []})
+
   @doc false
   def start_link(_) do
     GenServer.start_link(__MODULE__, [], name: __MODULE__)
@@ -47,6 +62,9 @@ defmodule Pleroma.Emoji do
     :ets.tab2list(@ets)
   end
 
+  @doc "Clear out old emojis"
+  def clear_all, do: :ets.delete_all_objects(@ets)
+
   @doc false
   def init(_) do
     @ets = :ets.new(@ets, @ets_options)