Current section
Files
Jump to
Current section
Files
src/glyph@models@discord.erl
-module(glyph@models@discord).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([mention_type_to_string/1]).
-export_type([discord_error/0, application/0, ready_application/0, user/0, message/0, message_payload/0, message_reference/0, allowed_mentions/0, mention_type/0, embed/0, embed_footer/0, embed_image/0, embed_thumbnail/0, embed_video/0, embed_provider/0, embed_author/0, embed_field/0, team/0, member/0, membership_state/0, install_params/0, get_gateway_bot/0, session_start_limit/0, gateway_event/0, event_handler/0, hello_event/0, ready_event/0, gateway_intent/0, bot_client/0]).
-type discord_error() :: any().
-type application() :: {application,
binary(),
binary(),
gleam@option:option(binary()),
binary(),
gleam@option:option(list(binary())),
boolean(),
boolean(),
gleam@option:option(user()),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(user()),
gleam@option:option(binary()),
binary(),
gleam@option:option(team()),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(integer()),
gleam@option:option(integer()),
gleam@option:option(list(binary())),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(list(binary())),
gleam@option:option(install_params()),
gleam@option:option(binary())}.
-type ready_application() :: {ready_application, binary(), integer()}.
-type user() :: {user,
binary(),
binary(),
binary(),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(boolean()),
gleam@option:option(boolean()),
gleam@option:option(boolean()),
gleam@option:option(binary()),
gleam@option:option(integer()),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(integer()),
gleam@option:option(integer()),
gleam@option:option(integer()),
gleam@option:option(binary())}.
-type message() :: {message,
binary(),
binary(),
user(),
binary(),
boolean(),
boolean(),
boolean(),
integer()}.
-type message_payload() :: {message_payload,
gleam@option:option(binary()),
gleam@option:option(boolean()),
gleam@option:option(list(embed())),
gleam@option:option(allowed_mentions()),
gleam@option:option(message_reference()),
gleam@option:option(list(binary())),
gleam@option:option(integer()),
gleam@option:option(binary()),
gleam@option:option(boolean())}.
-type message_reference() :: {message_reference,
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(boolean())}.
-type allowed_mentions() :: {allowed_mentions,
list(mention_type()),
list(binary()),
list(binary()),
boolean()}.
-type mention_type() :: roles | users | everyone.
-type embed() :: {embed,
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(integer()),
gleam@option:option(embed_footer()),
gleam@option:option(embed_image()),
gleam@option:option(embed_thumbnail()),
gleam@option:option(embed_video()),
gleam@option:option(embed_provider()),
gleam@option:option(embed_author()),
gleam@option:option(list(embed_field()))}.
-type embed_footer() :: {embed_footer,
binary(),
gleam@option:option(binary()),
gleam@option:option(binary())}.
-type embed_image() :: {embed_image,
binary(),
gleam@option:option(binary()),
gleam@option:option(integer()),
gleam@option:option(integer())}.
-type embed_thumbnail() :: {embed_thumbnail,
binary(),
gleam@option:option(binary()),
gleam@option:option(integer()),
gleam@option:option(integer())}.
-type embed_video() :: {embed_video,
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(integer()),
gleam@option:option(integer())}.
-type embed_provider() :: {embed_provider,
gleam@option:option(binary()),
gleam@option:option(binary())}.
-type embed_author() :: {embed_author,
binary(),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(binary())}.
-type embed_field() :: {embed_field,
binary(),
binary(),
gleam@option:option(boolean())}.
-type team() :: {team,
binary(),
gleam@option:option(binary()),
list(member()),
binary(),
binary()}.
-type member() :: {member, integer(), binary(), user(), binary()}.
-type membership_state() :: invited | accepted.
-type install_params() :: {install_params, list(binary()), binary()}.
-type get_gateway_bot() :: {get_gateway_bot,
binary(),
integer(),
session_start_limit()}.
-type session_start_limit() :: {session_start_limit,
integer(),
integer(),
integer(),
integer()}.
-type gateway_event() :: {gateway_event,
integer(),
gleam@dynamic:dynamic_(),
gleam@option:option(integer()),
gleam@option:option(binary())}.
-type event_handler() :: {event_handler,
fun((bot_client(), message()) -> {ok, nil} | {error, discord_error()})}.
-type hello_event() :: {hello_event, integer()}.
-type ready_event() :: {ready_event,
integer(),
user(),
gleam@dynamic:dynamic_(),
binary(),
binary(),
gleam@option:option(list(integer())),
ready_application()}.
-type gateway_intent() :: guilds |
guild_members |
guild_moderation |
guild_emojis_and_stickers |
guild_integrations |
guild_webhooks |
guild_invites |
guild_voice_states |
guild_presences |
guild_messages |
guild_message_reactions |
guild_message_typing |
direct_messages |
direct_message_reactions |
direct_message_typing |
message_content |
guild_scheduled_events |
auto_moderation_configuration |
auto_moderation_execution.
-type bot_client() :: {bot_client,
glyph@internal@network@rest:token_type(),
binary(),
binary(),
binary(),
integer(),
event_handler(),
glyph@internal@network@rest:rest_client()}.
-spec mention_type_to_string(mention_type()) -> binary().
mention_type_to_string(M) ->
case M of
roles ->
<<"roles"/utf8>>;
users ->
<<"users"/utf8>>;
everyone ->
<<"everyone"/utf8>>
end.