HomingPigeon/lib/homingpigeon/channel_map.ex

41 lines
911 B
Elixir
Raw Normal View History

2022-11-10 19:41:03 -05:00
defmodule HomingPigeon.ChannelMap do
@moduledoc """
maps discord channels to irc channels
"""
2020-07-16 23:11:18 -04:00
def discord(network, channel) do
id =
2022-11-10 19:41:03 -05:00
Application.fetch_env!(:homingpigeon, :channels)
2020-07-16 23:11:18 -04:00
|> Enum.filter(&(&1.ircnetwork == network and &1.ircchannel == channel))
|> List.first()
case id do
2020-07-18 04:22:57 -04:00
%{discordid: discordid} ->
2020-07-17 14:17:41 -04:00
{:ok, discordid}
2020-07-16 23:11:18 -04:00
2020-07-17 14:17:41 -04:00
_ ->
2020-07-16 23:11:18 -04:00
{:error, "no mapping"}
end
end
def irc(id) do
channel =
2022-11-10 19:41:03 -05:00
Application.fetch_env!(:homingpigeon, :channels)
2020-07-16 23:11:18 -04:00
|> Enum.filter(&(&1.discordid == id))
|> List.first()
case channel do
2020-07-18 04:22:57 -04:00
%{ircnetwork: net, ircchannel: chan} ->
2020-07-17 14:17:41 -04:00
{:ok, net, chan}
2020-07-16 23:11:18 -04:00
2020-07-17 14:17:41 -04:00
_ ->
2020-07-16 23:11:18 -04:00
{:error, "no mapping"}
end
end
def getircchannels(network) do
2022-11-10 19:41:03 -05:00
Application.fetch_env!(:homingpigeon, :channels)
2020-07-16 23:11:18 -04:00
|> Enum.filter(&(&1.ircnetwork == network))
|> Enum.map(& &1.ircchannel)
end
end