Update Omnibot.Core state to use a map for flexibility

More things need to be added to Omnibot.Core's state, so it's been
expanded to a map to allow for that.

Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
This commit is contained in:
2020-08-11 16:17:42 -07:00
parent aa6a4bf5fa
commit c1602065ae

View File

@@ -47,13 +47,13 @@ defmodule Omnibot.Core do
@impl true @impl true
def on_init(_cfg) do def on_init(_cfg) do
MapSet.new() %{channels: MapSet.new()}
end end
defp sync_channels(irc) do defp sync_channels(irc) do
cfg = Irc.cfg(irc) cfg = Irc.cfg(irc)
desired = MapSet.new(Config.all_channels(cfg)) desired = MapSet.new(Config.all_channels(cfg))
present = state() present = state().channels
to_join = MapSet.difference(desired, present) to_join = MapSet.difference(desired, present)
|> MapSet.to_list() |> MapSet.to_list()
@@ -65,11 +65,11 @@ defmodule Omnibot.Core do
end end
defp add_channel(channel) do defp add_channel(channel) do
update_state(fn state -> MapSet.put(state, channel) end) update_state(fn cfg = %{channels: channels} -> %{cfg | channels: MapSet.put(channels, channel)} end)
end end
defp remove_channel(channel) do defp remove_channel(channel) do
update_state(fn state -> MapSet.delete(state, channel) end) update_state(fn cfg = %{channels: channels} -> %{cfg | channels: MapSet.delete(channels, channel)} end)
end end
end end