Remove router.ex and move behavior to Omnibot.Irc
Omnibot.Router was useful when it was used for actually routing messages. However, its responsibilities have spread such that it's just a single function at this point. So this single function has been moved to Omnibot.Irc as a private function instead. Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
This commit is contained in:
@@ -30,6 +30,12 @@ defmodule Omnibot.Irc do
|
|||||||
|
|
||||||
def sync_channels(irc), do: GenServer.cast(irc, :sync_channels)
|
def sync_channels(irc), do: GenServer.cast(irc, :sync_channels)
|
||||||
|
|
||||||
|
defp route_msg(irc, msg) do
|
||||||
|
channel = Msg.channel(msg)
|
||||||
|
State.channel_modules(channel)
|
||||||
|
|> Enum.each(fn {module, _} -> module.on_msg(irc, msg) end)
|
||||||
|
end
|
||||||
|
|
||||||
## Server callbacks
|
## Server callbacks
|
||||||
|
|
||||||
@impl true
|
@impl true
|
||||||
@@ -91,7 +97,7 @@ defmodule Omnibot.Irc do
|
|||||||
irc = self()
|
irc = self()
|
||||||
{:ok, _task} = Task.Supervisor.start_child(
|
{:ok, _task} = Task.Supervisor.start_child(
|
||||||
Omnibot.RouterSupervisor,
|
Omnibot.RouterSupervisor,
|
||||||
fn -> Omnibot.Router.route(irc, msg) end
|
fn -> route_msg(irc, msg) end
|
||||||
)
|
)
|
||||||
{:noreply, socket}
|
{:noreply, socket}
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,48 +0,0 @@
|
|||||||
defmodule Omnibot.Router do
|
|
||||||
require Logger
|
|
||||||
alias Omnibot.{Irc.Msg, State}
|
|
||||||
|
|
||||||
def route(irc, msg) do
|
|
||||||
channel = Msg.channel(msg)
|
|
||||||
State.channel_modules(channel)
|
|
||||||
|> Enum.each(fn {module, _} -> module.on_msg(irc, 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
|
|
||||||
Reference in New Issue
Block a user