diff options
Diffstat (limited to '')
-rw-r--r-- | lib/irc.ex | 14 | ||||
-rw-r--r-- | lib/irc/admin_handler.ex | 11 | ||||
-rw-r--r-- | lib/irc/message.ex | 13 |
3 files changed, 23 insertions, 15 deletions
@@ -6,6 +6,7 @@ defmodule Nola.Irc do def send_message_as(account, network, channel, text, force_puppet \\ false, meta \\ []) do connection = Nola.Irc.Connection.get_network(network) + if connection && (force_puppet || Nola.Irc.PuppetConnection.whereis(account, connection)) do Nola.Irc.PuppetConnection.start_and_send_message(account, connection, channel, text, meta) else @@ -21,7 +22,7 @@ defmodule Nola.Irc do for {n, u, h} <- Nola.Irc.env(:admins, []) do admin_part_match?(n, nick) && admin_part_match?(u, user) && admin_part_match?(h, host) end - |> Enum.any? + |> Enum.any?() end defp admin_part_match?(:_, _), do: true @@ -34,9 +35,13 @@ defmodule Nola.Irc do Nola.Irc.Connection.setup() [ - worker(Registry, [[keys: :duplicate, name: Nola.Irc.ConnectionPubSub]], id: :registr_irc_conn), - supervisor(Nola.Irc.Connection.Supervisor, [], [name: Nola.Irc.Connection.Supervisor]), - supervisor(Nola.Irc.PuppetConnection.Supervisor, [], [name: Nola.Irc.PuppetConnection.Supervisor]), + worker(Registry, [[keys: :duplicate, name: Nola.Irc.ConnectionPubSub]], + id: :registr_irc_conn + ), + supervisor(Nola.Irc.Connection.Supervisor, [], name: Nola.Irc.Connection.Supervisor), + supervisor(Nola.Irc.PuppetConnection.Supervisor, [], + name: Nola.Irc.PuppetConnection.Supervisor + ) ] end @@ -45,5 +50,4 @@ defmodule Nola.Irc do Logger.info("Starting connections") Nola.Irc.Connection.start_all() end - end diff --git a/lib/irc/admin_handler.ex b/lib/irc/admin_handler.ex index 39556fe..e4834fa 100644 --- a/lib/irc/admin_handler.ex +++ b/lib/irc/admin_handler.ex @@ -13,17 +13,22 @@ defmodule Nola.Irc.AdminHandler do end def init([client]) do - ExIRC.Client.add_handler client, self() + ExIRC.Client.add_handler(client, self()) {:ok, _} = Registry.register(Nola.PubSub, "op", []) {:ok, client} end - def handle_info({:irc, :trigger, "op", m = %Nola.Message{trigger: %Nola.Trigger{type: :bang}, sender: sender}}, client) do + def handle_info( + {:irc, :trigger, "op", + m = %Nola.Message{trigger: %Nola.Trigger{type: :bang}, sender: sender}}, + client + ) do if Nola.Irc.admin?(sender) do m.replyfun.({:mode, "+o"}) else m.replyfun.({:kick, "non"}) end + {:noreply, client} end @@ -31,11 +36,11 @@ defmodule Nola.Irc.AdminHandler do if Nola.Irc.admin?(sender) do ExIRC.Client.mode(client, chan, "+o", sender.nick) end + {:noreply, client} end def handle_info(msg, client) do {:noreply, client} end - end diff --git a/lib/irc/message.ex b/lib/irc/message.ex index 3927079..4b61d36 100644 --- a/lib/irc/message.ex +++ b/lib/irc/message.ex @@ -1,28 +1,27 @@ defmodule Nola.Irc.Message do - @max_chars 440 def splitlong(string, max_chars \\ 440) def splitlong(string, max_chars) when is_list(string) do - Enum.map(string, fn(s) -> splitlong(s, max_chars) end) + Enum.map(string, fn s -> splitlong(s, max_chars) end) |> List.flatten() end def splitlong(string, max_chars) do string - |> String.codepoints + |> String.codepoints() |> Enum.chunk_every(max_chars) |> Enum.map(&Enum.join/1) end def splitlong_with_prefix(string, prefix, max_chars \\ 440) do prefix = "#{prefix} " - max_chars = max_chars - (length(String.codepoints(prefix))) + max_chars = max_chars - length(String.codepoints(prefix)) + string - |> String.codepoints + |> String.codepoints() |> Enum.chunk_every(max_chars) - |> Enum.map(fn(line) -> prefix <> Enum.join(line) end) + |> Enum.map(fn line -> prefix <> Enum.join(line) end) end - end |