WIP: Move to using modules for implementing core behavior

Since modules can now intercept all messages in the channels they're
listening for, it'd be cool to have modules handling things like making
sure the Omnibot.State stays updated as appropriate, and that pings are
ponged, etc.

This will probably deprecate the router, since it's been reduced to a
single function call, but we'll see about that.

Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
This commit is contained in:
2020-06-13 16:04:19 -04:00
parent 5f251d22ce
commit 73c5f58243
5 changed files with 65 additions and 60 deletions

View File

@@ -65,6 +65,17 @@ defmodule Omnibot.Irc.Msg do
params: params,
}
end
@doc "Gets the channel that the given message is targeting, if any."
def channel(msg) do
case String.upcase(msg.command) do
"PRIVMSG" -> Enum.at(msg.params, 0)
"JOIN" -> Enum.at(msg.params, 0)
"PART" -> Enum.at(msg.params, 0)
"KICK" -> Enum.at(msg.params, 0)
_ -> nil
end
end
end
defimpl String.Chars, for: Irc.Msg.Prefix do