Crux v2020-03-17 17:55:51Z Crux.Structs.Channel View Source

Represents a Discord Channel Object.

List of where every property can be present:

PropertyText (0)DM (1)Voice (2)Group (3)Category (4)News (5)
application_idnononoyesnono
bitratenonoyesnonono
guild_idyesnoyesnoyesyes
iconnononoyesnono
idyesyesyesyesyesyes
last_message_idyesyesnoyesnoyes
last_pin_timestampyesyesnoyesnoyes
nameyesnoyesyesyesyes
nsfwyesnonononoyes
owner_idnononoyesnono
parent_idyesnoyesnonoyes
permission_overwritesyesnoyesnoyesyes
positionyesnoyesnoyesyes
rate_limit_per_useryesnonononono
recipientsnoyes
(One Element)
noyesnono
topicyesnoyesnoyesyes
type012345
user_limitnonoyesnonono

Differences opposed to the Discord API Object:

  • :recipients is a MapSet of user ids

Link to this section Summary

Types

All available types that can be resolved into a channel id.

All available types that can be resolved into a channel position.

t()
TypeIDDescription
GUILD_TEXT0A text channel within a guild.
DM1A direct text channel between two users.
GUILD_VOICE2A voice channel withing a guild.
GROUP_DM3A direct channel between multiple users.
Bots do not have access to those.
GUILD_CATEGORY4An organizational category.
GUILD_NEWS5A text channel users can follow and crosspost messages to.
Bots can not publish messages.
GUILD_STORE6A channel in which game developers can sell their game.
Bots can not interact with those.

For more information see the Discord Developer Documentation.

Functions

Creates a Crux.Structs.Channel.t/0 struct from raw data.

Resolves a position_resolvable/0 into a channel position.

Converts a Crux.Structs.Channel.t/0 into its discord mention format.

Link to this section Types

All available types that can be resolved into a channel id.

Link to this type

position_resolvable() View Source (since 0.2.1)
position_resolvable() ::
  Crux.Structs.Channel.t()
  | %{channel: id_resolvable(), position: integer()}
  | {id_resolvable(), integer()}
  | %{id: id_resolvable(), position: integer()}

All available types that can be resolved into a channel position.

Link to this type

t() View Source (since 0.1.0)
t() :: %Crux.Structs.Channel{
  application_id: Crux.Structs.Snowflake.t(),
  bitrate: integer(),
  guild_id: Crux.Structs.Snowflake.t(),
  icon: String.t(),
  id: Crux.Structs.Snowflake.t(),
  last_message_id: Crux.Structs.Snowflake.t(),
  last_pin_timestamp: String.t(),
  name: String.t(),
  nsfw: boolean(),
  owner_id: Crux.Structs.Snowflake.t(),
  parent_id: Crux.Structs.Snowflake.t(),
  permission_overwrites: %{
    optional(Crux.Structs.Snowflake.t()) => Crux.Structs.Overwrite.t()
  },
  position: integer(),
  rate_limit_per_user: integer(),
  recipients: MapSet.t(Crux.Structs.Snowflake.t()),
  topic: String.t(),
  type: type(),
  user_limit: non_neg_integer()
}

Link to this type

type() View Source (since 0.2.3)
type() :: non_neg_integer()

TypeIDDescription
GUILD_TEXT0A text channel within a guild.
DM1A direct text channel between two users.
GUILD_VOICE2A voice channel withing a guild.
GROUP_DM3A direct channel between multiple users.
Bots do not have access to those.
GUILD_CATEGORY4An organizational category.
GUILD_NEWS5A text channel users can follow and crosspost messages to.
Bots can not publish messages.
GUILD_STORE6A channel in which game developers can sell their game.
Bots can not interact with those.

For more information see the Discord Developer Documentation.

Link to this section Functions

Link to this function

create(data) View Source (since 0.1.0)
create(data :: map()) :: t()

Creates a Crux.Structs.Channel.t/0 struct from raw data.

Automatically invoked by Crux.Structs.create/2

Link to this function

resolve_id(resolvable) View Source (since 0.2.1)
resolve_id(id_resolvable()) :: Crux.Structs.Snowflake.t() | nil

Resolves the id of a Crux.Structs.Channel.t/0.

Automatically invoked by Crux.Structs.resolve_id/2.

  iex> %Crux.Structs.Message{channel_id: 222079895583457280}
  ...> |> Crux.Structs.Channel.resolve_id()
  222079895583457280

  iex> %Crux.Structs.Channel{id: 222079895583457280}
  ...> |> Crux.Structs.Channel.resolve_id()
  222079895583457280

  iex> 222079895583457280
  ...> |> Crux.Structs.Channel.resolve_id()
  222079895583457280

  iex> "222079895583457280"
  ...> |> Crux.Structs.Channel.resolve_id()
  222079895583457280
Link to this function

resolve_position(resolvable) View Source (since 0.2.1)
resolve_position(position_resolvable()) ::
  %{id: Crux.Structs.Snowflake.t(), position: integer()} | nil

Resolves a position_resolvable/0 into a channel position.

Examples

  iex> %Crux.Structs.Channel{id: 222079895583457280, position: 5}
  ...> |> Crux.Structs.Channel.resolve_position()
  %{id: 222079895583457280, position: 5}

  iex> {%Crux.Structs.Channel{id: 222079895583457280}, 5}
  ...> |> Crux.Structs.Channel.resolve_position()
  %{id: 222079895583457280, position: 5}

  iex> {222079895583457280, 5}
  ...> |> Crux.Structs.Channel.resolve_position()
  %{id: 222079895583457280, position: 5}

  iex> %{id: 222079895583457280, position: 5}
  ...> |> Crux.Structs.Channel.resolve_position()
  %{id: 222079895583457280, position: 5}

  iex> {nil, 5}
  ...> |> Crux.Structs.Channel.resolve_position()
  nil
Link to this function

to_mention(channel) View Source (since 0.1.1)
to_mention(user :: Crux.Structs.Channel.t()) :: String.t()

Converts a Crux.Structs.Channel.t/0 into its discord mention format.

Example

iex> %Crux.Structs.Channel{id: 316880197314019329}
...> |> Crux.Structs.Channel.to_mention()
"<#316880197314019329>"