36 lines
763 B
Elixir
Executable File
36 lines
763 B
Elixir
Executable File
defmodule Discordirc.DiscordInfo do
|
|
@moduledoc """
|
|
helper functions for discord text things
|
|
"""
|
|
alias Nostrum.Api
|
|
|
|
def get_nick_by_id(guild_id, id) do
|
|
case Api.get_guild_member(guild_id, id) do
|
|
{:ok, %{nick: nil, user: %{username: u, discriminator: d}}} ->
|
|
"#{u}##{d}"
|
|
|
|
{:ok, %{nick: n}} ->
|
|
n
|
|
end
|
|
end
|
|
|
|
def get_username_by_id(id) do
|
|
{:ok, %{username: u, discriminator: d}} = Api.get_user(id)
|
|
"#{u}##{d}"
|
|
end
|
|
|
|
def get_channel_name_by_id(id) do
|
|
{:ok, %{name: c}} = Api.get_channel(id)
|
|
c
|
|
end
|
|
|
|
def get_role_name_by_id(guild_id, id) do
|
|
{:ok, roles} = Api.get_guild_roles(guild_id)
|
|
|
|
roles
|
|
|> Enum.filter(fn %{id: i} -> i == id end)
|
|
|> List.first()
|
|
|> Map.get(:name)
|
|
end
|
|
end
|