D++ (DPP)
C++ Discord API Bot Library
dpp::attachment Struct Reference

Represents an attachment in a dpp::message. More...

#include <message.h>

+ Collaboration diagram for dpp::attachment:

Public Member Functions

 attachment (struct message *o)
 Constructs a new attachment object. More...
 
 attachment (struct message *o, nlohmann::json *j)
 Constructs a new attachment object from a JSON object. More...
 
 ~attachment ()=default
 Destructs the attachment object. More...
 
void download (http_completion_event callback) const
 Download this attachment. More...
 
bool is_remix () const
 Returns true if remixed. More...
 
time_t get_expire_time () const
 Returns expiration timestamp for attachment's URL. More...
 
time_t get_issued_time () const
 Returns creation timestamp for attachment's URL. More...
 

Public Attributes

snowflake id
 ID of attachment. More...
 
uint32_t size
 Size of the attachment in bytes. More...
 
std::string filename
 File name of the attachment. More...
 
std::string description
 Optional: Description of the attachment. Max 1024 characters. More...
 
std::string url
 URL which points to the attachment. More...
 
std::string proxy_url
 Proxied URL which points to the attachment. More...
 
uint32_t width
 Width of the attachment, if applicable. More...
 
uint32_t height
 Height of the attachment, if applicable. More...
 
std::string content_type
 MIME type of the attachment, if applicable. More...
 
bool ephemeral
 Whether this attachment is ephemeral, if applicable. More...
 
double duration_secs
 The duration of the audio file. More...
 
std::string waveform
 Base64 encoded bytearray representing a sampled waveform. More...
 
uint8_t flags
 Flags made from dpp::attachment_flags. More...
 
struct messageowner
 Owning message. More...
 

Detailed Description

Represents an attachment in a dpp::message.

Constructor & Destructor Documentation

◆ attachment() [1/2]

dpp::attachment::attachment ( struct message o)

Constructs a new attachment object.

Parameters
oOwning dpp::message object

◆ attachment() [2/2]

dpp::attachment::attachment ( struct message o,
nlohmann::json *  j 
)

Constructs a new attachment object from a JSON object.

Parameters
oOwning dpp::message object
jJSON to read information from

◆ ~attachment()

dpp::attachment::~attachment ( )
default

Destructs the attachment object.

Member Function Documentation

◆ download()

void dpp::attachment::download ( http_completion_event  callback) const

Download this attachment.

Parameters
callbackA callback which is called when the download completes.
Note
The content of the file will be in the http_info.body parameter of the callback parameter.
Exceptions
dpp::logic_exceptionIf there is no owner associated with this attachment that itself has an owning cluster, this method will throw a dpp::logic_exception when called.

◆ get_expire_time()

time_t dpp::attachment::get_expire_time ( ) const

Returns expiration timestamp for attachment's URL.

Returns
timestamp of URL expiration

◆ get_issued_time()

time_t dpp::attachment::get_issued_time ( ) const

Returns creation timestamp for attachment's URL.

Returns
timestamp of URL creation

◆ is_remix()

bool dpp::attachment::is_remix ( ) const

Returns true if remixed.

Returns
true if remixed

Member Data Documentation

◆ content_type

std::string dpp::attachment::content_type

MIME type of the attachment, if applicable.

◆ description

std::string dpp::attachment::description

Optional: Description of the attachment. Max 1024 characters.

◆ duration_secs

double dpp::attachment::duration_secs

The duration of the audio file.

Note
Currently for voice messages.

◆ ephemeral

bool dpp::attachment::ephemeral

Whether this attachment is ephemeral, if applicable.

◆ filename

std::string dpp::attachment::filename

File name of the attachment.

◆ flags

uint8_t dpp::attachment::flags

Flags made from dpp::attachment_flags.

◆ height

uint32_t dpp::attachment::height

Height of the attachment, if applicable.

◆ id

snowflake dpp::attachment::id

ID of attachment.

◆ owner

struct message* dpp::attachment::owner

Owning message.

◆ proxy_url

std::string dpp::attachment::proxy_url

Proxied URL which points to the attachment.

◆ size

uint32_t dpp::attachment::size

Size of the attachment in bytes.

◆ url

std::string dpp::attachment::url

URL which points to the attachment.

◆ waveform

std::string dpp::attachment::waveform

Base64 encoded bytearray representing a sampled waveform.

Note
Currently for voice messages.

◆ width

uint32_t dpp::attachment::width

Width of the attachment, if applicable.

D++ Library version 10.0.35D++ Library version 10.0.34D++ Library version 10.0.33D++ Library version 10.0.32D++ Library version 10.0.31D++ Library version 10.0.30D++ Library version 10.0.29D++ Library version 10.0.28D++ Library version 10.0.27D++ Library version 10.0.26D++ Library version 10.0.25D++ Library version 10.0.24D++ Library version 10.0.23D++ Library version 10.0.22D++ Library version 10.0.21D++ Library version 10.0.20D++ Library version 10.0.19D++ Library version 10.0.18D++ Library version 10.0.17D++ Library version 10.0.16D++ Library version 10.0.15D++ Library version 10.0.14D++ Library version 10.0.13D++ Library version 10.0.12D++ Library version 10.0.11D++ Library version 10.0.10D++ Library version 10.0.9D++ Library version 10.0.8D++ Library version 10.0.7D++ Library version 10.0.6D++ Library version 10.0.5D++ Library version 10.0.4D++ Library version 10.0.3D++ Library version 10.0.2D++ Library version 10.0.1D++ Library version 10.0.0D++ Library version 9.0.19D++ Library version 9.0.18D++ Library version 9.0.17D++ Library version 9.0.16D++ Library version 9.0.15D++ Library version 9.0.14D++ Library version 9.0.13D++ Library version 9.0.12D++ Library version 9.0.11D++ Library version 9.0.10D++ Library version 9.0.9D++ Library version 9.0.8D++ Library version 9.0.7D++ Library version 9.0.6D++ Library version 9.0.5D++ Library version 9.0.4D++ Library version 9.0.3D++ Library version 9.0.2D++ Library version 9.0.1D++ Library version 9.0.0D++ Library version 1.0.2D++ Library version 1.0.1D++ Library version 1.0.0