grom/activity

Types

Important documents: https://discord.com/developers/docs/events/gateway-events#activity-object

pub type Activity {
  Activity(
    name: String,
    type_: Type,
    url: option.Option(String),
    created_at: timestamp.Timestamp,
    timestamps: option.Option(Timestamps),
    application_id: option.Option(String),
    status_display_type: option.Option(DisplayType),
    details: option.Option(String),
    details_url: option.Option(String),
    state: option.Option(String),
    state_url: option.Option(String),
    emoji: option.Option(Emoji),
    party: option.Option(Party),
    assets: option.Option(Assets),
    secrets: option.Option(Secrets),
    flags: option.Option(List(Flag)),
    buttons: option.Option(List(Button)),
  )
}

Constructors

pub type Assets {
  Assets(
    large_image: option.Option(String),
    large_text: option.Option(String),
    large_url: option.Option(String),
    small_image: option.Option(String),
    small_text: option.Option(String),
    small_url: option.Option(String),
  )
}

Constructors

pub type Button {
  Button(label: String, url: String)
}

Constructors

  • Button(label: String, url: String)

Important documents: https://discord.com/developers/docs/events/gateway-events#activity-object-status-display-types

pub type DisplayType {
  DisplayName
  DisplayState
  DisplayDetails
}

Constructors

  • DisplayName
  • DisplayState
  • DisplayDetails
pub type Emoji {
  Emoji(
    name: String,
    id: option.Option(String),
    is_animated: option.Option(Bool),
  )
}

Constructors

pub type Flag {
  Instance
  Join
  Spectate
  JoinRequest
  Sync
  Play
  PartyPrivacyFriends
  PartyPrivacyVoiceChannel
  Embedded
}

Constructors

  • Instance
  • Join
  • Spectate
  • JoinRequest
  • Sync
  • Play
  • PartyPrivacyFriends
  • PartyPrivacyVoiceChannel
  • Embedded
pub type Party {
  Party(
    id: option.Option(String),
    size: option.Option(PartySize),
  )
}

Constructors

pub type PartySize {
  PartySize(current_size: Int, max_size: Int)
}

Constructors

  • PartySize(current_size: Int, max_size: Int)
pub type Secrets {
  Secrets(
    join: option.Option(String),
    spectate: option.Option(String),
    match: option.Option(String),
  )
}

Constructors

pub type Timestamps {
  Timestamps(
    start: option.Option(timestamp.Timestamp),
    end: option.Option(timestamp.Timestamp),
  )
}

Constructors

Important documents: https://discord.com/developers/docs/events/gateway-events#activity-object-activity-types

pub type Type {
  Playing
  Streaming
  Listening
  Watching
  Custom
  Competing
}

Constructors

  • Playing
  • Streaming
  • Listening
  • Watching
  • Custom
  • Competing

Values

pub fn new(named name: String, type_ type_: Type) -> Activity

Example usage:

let activity = activity.new(named: "with your mom", type_: activity.Playing)

gateway_connection
|> gateway.update_presence(gateway.UpdatePresenceMessage(
  ..gateway.new_update_presence_message(),
  activities: [activity],
))
Search Document