Remove _misskey_reaction matching (#500)
[akkoma] / lib / pleroma / emoji.ex
index 24eafda4143dc06e071acc1080fc60b5e1e0c17f..933f4275af1d6cec7625b52ad00c9491b620798e 100644 (file)
@@ -21,6 +21,7 @@ defmodule Pleroma.Emoji do
     :named_table,
     {:read_concurrency, true}
   ]
+  @emoji_regex ~r/:[A-Za-z0-9_-]+(@.+)?:/
 
   defstruct [:code, :file, :tags, :safe_code, :safe_file]
 
@@ -188,6 +189,11 @@ defmodule Pleroma.Emoji do
 
   def emoji_url(_), do: nil
 
+  def emoji_name_with_instance(name, url) do
+    url = url |> URI.parse() |> Map.get(:host)
+    "#{name}@#{url}"
+  end
+
   emoji_qualification_map =
     emojis
     |> Enum.filter(&String.contains?(&1, "\uFE0F"))
@@ -200,4 +206,7 @@ defmodule Pleroma.Emoji do
   end
 
   def fully_qualify_emoji(emoji), do: emoji
+
+  def matches_shortcode?(nil), do: false
+  def matches_shortcode?(s), do: Regex.match?(@emoji_regex, s)
 end