diff options
Diffstat (limited to 'lib/irc/irc.ex')
-rw-r--r-- | lib/irc/irc.ex | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/lib/irc/irc.ex b/lib/irc/irc.ex deleted file mode 100644 index 71d6d93..0000000 --- a/lib/irc/irc.ex +++ /dev/null @@ -1,79 +0,0 @@ -defmodule IRC do - - defmodule Message do - @derive {Poison.Encoder, except: [:replyfun]} - defstruct [:id, - :text, - {:transport, :irc}, - :network, - :account, - :sender, - :channel, - :trigger, - :replyfun, - :at, - {:meta, %{}} - ] - end - defmodule Trigger do - @derive Poison.Encoder - defstruct [:type, :trigger, :args] - end - - def send_message_as(account, network, channel, text, force_puppet \\ false) do - connection = IRC.Connection.get_network(network) - if connection && (force_puppet || IRC.PuppetConnection.whereis(account, connection)) do - IRC.PuppetConnection.start_and_send_message(account, connection, channel, text) - else - user = IRC.UserTrack.find_by_account(network, account) - nick = if(user, do: user.nick, else: account.name) - IRC.Connection.broadcast_message(network, channel, "<#{nick}> #{text}") - end - end - - def register(key) do - case Registry.register(IRC.PubSub, key, []) do - {:ok, _} -> :ok - error -> error - end - end - - def admin?(%Message{sender: sender}), do: admin?(sender) - - def admin?(%{nick: nick, user: user, host: host}) 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? - end - - defp admin_part_match?(:_, _), do: true - defp admin_part_match?(a, a), do: true - defp admin_part_match?(_, _), do: false - - @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) - |> List.flatten() - end - - def splitlong(string, max_chars) do - string - |> 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))) - string - |> String.codepoints - |> Enum.chunk_every(max_chars) - |> Enum.map(fn(line) -> prefix <> Enum.join(line) end) - end - -end |