diff options
Diffstat (limited to 'lib/nola_plugins/user_mention_plugin.ex')
-rw-r--r-- | lib/nola_plugins/user_mention_plugin.ex | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/lib/nola_plugins/user_mention_plugin.ex b/lib/nola_plugins/user_mention_plugin.ex deleted file mode 100644 index eb230fd..0000000 --- a/lib/nola_plugins/user_mention_plugin.ex +++ /dev/null @@ -1,52 +0,0 @@ -defmodule Nola.IRC.UserMentionPlugin do - @moduledoc """ - # mention - - * **@`<nick>` `<message>`**: notifie si possible le nick immédiatement via Telegram, SMS, ou équivalent à `!tell`. - """ - - require Logger - - def short_irc_doc, do: false - def irc_doc, do: @moduledoc - - def start_link() do - GenServer.start_link(__MODULE__, [], name: __MODULE__) - end - - def init(_) do - {:ok, _} = Registry.register(IRC.PubSub, "triggers", plugin: __MODULE__) - {:ok, nil} - end - - def handle_info({:irc, :trigger, nick, message = %IRC.Message{sender: sender, account: account, network: network, channel: channel, trigger: %IRC.Trigger{type: :at, args: content}}}, state) do - nick = nick - |> String.trim(":") - |> String.trim(",") - target = IRC.Account.find_always_by_nick(network, channel, nick) - if target do - telegram = IRC.Account.get_meta(target, "telegram-id") - sms = IRC.Account.get_meta(target, "sms-number") - text = "#{channel} <#{sender.nick}> #{Enum.join(content, " ")}" - - cond do - telegram -> - Nola.Telegram.send_message(telegram, "`#{channel}` <**#{sender.nick}**> #{Enum.join(content, " ")}") - sms -> - case Nola.IRC.SmsPlugin.send_sms(sms, text) do - {:error, code} -> message.replyfun("#{sender.nick}: erreur #{code} (sms)") - end - true -> - Nola.IRC.TellPlugin.tell(message, nick, content) - end - else - message.replyfun.("#{nick} m'est inconnu") - end - {:noreply, state} - end - - def handle_info(_, state) do - {:noreply, state} - end - -end |