2020-07-16 23:11:18 -04:00
|
|
|
defmodule Discordirc.ChannelMap do
|
2022-11-07 09:24:39 -05:00
|
|
|
@moduledoc """
|
|
|
|
maps discord channels to irc channels
|
|
|
|
"""
|
2020-07-16 23:11:18 -04:00
|
|
|
def discord(network, channel) do
|
|
|
|
id =
|
2022-11-07 09:24:39 -05:00
|
|
|
Application.fetch_env!(:discordirc, :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-07 09:24:39 -05:00
|
|
|
Application.fetch_env!(:discordirc, :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-07 09:24:39 -05:00
|
|
|
Application.fetch_env!(:discordirc, :channels)
|
2020-07-16 23:11:18 -04:00
|
|
|
|> Enum.filter(&(&1.ircnetwork == network))
|
|
|
|
|> Enum.map(& &1.ircchannel)
|
|
|
|
end
|
|
|
|
end
|