Files
omnibot/lib/router.ex

50 lines
1.3 KiB
Elixir
Raw Normal View History

defmodule Omnibot.Router do
require Logger
alias Omnibot.{Config, Irc, Irc.Msg, State}
def route(_irc, msg) do
channel = Msg.channel(msg)
State.cfg()
|> Config.channel_modules(channel)
|> Enum.each(fn {module, _} -> module.on_msg(msg) end)
end
#def handle(_irc, :privmsg, msg) do
# [channel | _params] = msg.params
# # Find modules that want this message
# State.cfg()
# |> Config.channel_modules(channel)
# |> Enum.each(fn {module, _} -> module.on_msg(msg) end)
#end
#def handle(_irc, :join, msg: %Msg {params: [channel | _]}) do
# State.cfg()
# |> Config.channel_modules(channel)
# |> Enum.each(fn {module, _} -> module.on_join(msg) end)
#end
#def handle(irc, :kick, msg: %Msg {params: [channel | _]}) do
# State.cfg()
# |> Config.channel_modules(channel)
# |> Enum.each(fn {module, _} -> module.on_kick(msg) end)
#end
#def handle(_irc, :part, %Msg {prefix: %Msg.Prefix{nick: nick}, params: [channel | _]}) do
# cfg = State.cfg()
# if nick == cfg.nick do
# State.remove_channel(State, channel)
# end
#end
#def handle(irc, :ping, msg) do
# cfg = State.cfg()
# reply = Config.msg(cfg, "PONG", msg.params)
# Irc.send_msg(irc, reply)
#end
#def handle(irc, :welcome, _msg) do
# Irc.sync_channels(irc)
#end
end