HomingPigeon/lib/discord/discordinfo.ex

36 lines
763 B
Elixir
Raw Normal View History

defmodule Discordirc.DiscordInfo do
@moduledoc """
helper functions for discord text things
"""
alias Nostrum.Api
def get_nick_by_id(guild_id, id) do
2022-11-07 10:42:08 -05:00
case Api.get_guild_member(guild_id, id) do
2022-11-07 10:53:30 -05:00
{:ok, %{nick: nil, user: %{username: u, discriminator: d}}} ->
"#{u}##{d}"
2022-11-07 10:43:39 -05:00
2022-11-07 10:42:08 -05:00
{:ok, %{nick: n}} ->
2022-11-07 10:43:39 -05:00
n
2022-11-07 10:42:08 -05:00
end
end
2022-11-07 10:42:08 -05:00
def get_username_by_id(id) do
{:ok, %{username: u, discriminator: d}} = Api.get_user(id)
"#{u}##{d}"
end
2022-11-07 10:42:08 -05:00
def get_channel_name_by_id(id) do
2022-11-07 10:43:39 -05:00
{:ok, %{name: c}} = Api.get_channel(id)
c
end
2022-11-07 10:43:39 -05:00
def get_role_name_by_id(guild_id, id) do
{:ok, roles} = Api.get_guild_roles(guild_id)
roles
2022-11-07 10:43:39 -05:00
|> Enum.filter(fn %{id: i} -> i == id end)
|> List.first()
|> Map.get(:name)
2022-11-07 10:43:39 -05:00
end
end