D++ (DPP)
C++ Discord API Bot Library
|
Utility helper functions, generally for logging. More...
Classes | |
struct | iconhash |
Store a 128 bit icon hash (profile picture, server icon etc) as a 128 bit binary value made of two uint64_t. Has a constructor to build one from a string, and a method to fetch the value back in string form. More... | |
struct | uptime |
A class used to represent an uptime in hours, minutes, seconds and days, with helper functions to convert from time_t and display as a string. More... | |
Typedefs | |
typedef std::function< void(const std::string &output)> | cmd_result_t |
Callback for the results of a command executed via dpp::utility::exec. More... | |
Functions | |
void DPP_EXPORT | exec (const std::string &cmd, std::vector< std::string > parameters={}, cmd_result_t callback={}) |
Run a commandline program asyncronously. The command line program is spawned in a separate std::thread, and when complete, its output from stdout is passed to the callback function in its string prameter. For example. More... | |
std::string DPP_EXPORT | timestamp (time_t ts, time_format tf) |
Return a mentionable timestamp (used in a discord embed) More... | |
std::string DPP_EXPORT | current_date_time () |
Returns current date and time. More... | |
std::string DPP_EXPORT | loglevel (dpp::loglevel in) |
Convert a dpp::loglevel enum value to a string. More... | |
double DPP_EXPORT | time_f () |
Return the current time with fractions of seconds. This is a unix epoch time with the fractional seconds part after the decimal place. More... | |
bool DPP_EXPORT | has_voice () |
Returns true if D++ was built with voice support. More... | |
std::string DPP_EXPORT | bytes (uint64_t c) |
Convert a byte count to display value. More... | |
uint32_t | rgb (float red, float green, float blue) |
Convert floats to RGB for sending in embeds. More... | |
uint32_t | rgb (int red, int green, int blue) |
Convert ints to RGB for sending in embeds. More... | |
std::string DPP_EXPORT | debug_dump (uint8_t *data, size_t length) |
Output hex values of a section of memory for debugging. More... | |
size_t DPP_EXPORT | utf8len (const std::string &str) |
Returns the length of a UTF-8 string in codepoints. More... | |
std::string DPP_EXPORT | utf8substr (const std::string &str, std::string::size_type start, std::string::size_type length) |
Return substring of a UTF-8 encoded string in codepoints. More... | |
std::string DPP_EXPORT | read_file (const std::string &filename) |
Read a whole file into a std::string. Be sure you have enough memory to read the file, if you are reading a large file. More... | |
std::string | validate (const std::string &value, size_t _min, size_t _max, const std::string &exception_message) |
Validate a string value In the event the length of the string is less than _min, then an exception of type dpp:length_exception will be thrown. If the string is longer than _max UTF8 codepoints it will be truncated to fit. More... | |
std::string | avatar_size (uint32_t size) |
Return the url parameter for an avatar size, or empty if the size is 0. More... | |
Variables | |
const std::string | cdn_host = "https://cdn.discordapp.com" |
The base URL for CDN content such as profile pictures and guild icons. More... | |
Utility helper functions, generally for logging.
typedef std::function<void(const std::string& output)> dpp::utility::cmd_result_t |
Callback for the results of a command executed via dpp::utility::exec.
std::string dpp::utility::avatar_size | ( | uint32_t | size | ) |
Return the url parameter for an avatar size, or empty if the size is 0.
size | size to generate url parameter for |
std::string DPP_EXPORT dpp::utility::bytes | ( | uint64_t | c | ) |
Convert a byte count to display value.
c | number of bytes |
std::string DPP_EXPORT dpp::utility::current_date_time | ( | ) |
Returns current date and time.
std::string DPP_EXPORT dpp::utility::debug_dump | ( | uint8_t * | data, |
size_t | length | ||
) |
Output hex values of a section of memory for debugging.
data | The start of the data to display |
length | The length of data to display |
void DPP_EXPORT dpp::utility::exec | ( | const std::string & | cmd, |
std::vector< std::string > | parameters = {} , |
||
cmd_result_t | callback = {} |
||
) |
Run a commandline program asyncronously. The command line program is spawned in a separate std::thread, and when complete, its output from stdout is passed to the callback function in its string prameter. For example.
cmd | The command to run. |
parameters | Command line parameters. Each will be escaped using std::quoted . |
callback | The callback to call on completion. |
bool DPP_EXPORT dpp::utility::has_voice | ( | ) |
Returns true if D++ was built with voice support.
std::string DPP_EXPORT dpp::utility::loglevel | ( | dpp::loglevel | in | ) |
Convert a dpp::loglevel enum value to a string.
in | log level to convert |
std::string DPP_EXPORT dpp::utility::read_file | ( | const std::string & | filename | ) |
Read a whole file into a std::string. Be sure you have enough memory to read the file, if you are reading a large file.
filename | The path to the file to read |
dpp::exception | on failure to read the entire file |
uint32_t dpp::utility::rgb | ( | float | red, |
float | green, | ||
float | blue | ||
) |
Convert floats to RGB for sending in embeds.
red | red value, between 0 and 1 inclusive |
green | green value, between 0 and 1 inclusive |
blue | blue value, between 0 and 1 inclusive |
uint32_t dpp::utility::rgb | ( | int | red, |
int | green, | ||
int | blue | ||
) |
Convert ints to RGB for sending in embeds.
red | red value, between 0 and 255 inclusive |
green | green value, between 0 and 255 inclusive |
blue | blue value, between 0 and 255 inclusive |
double DPP_EXPORT dpp::utility::time_f | ( | ) |
Return the current time with fractions of seconds. This is a unix epoch time with the fractional seconds part after the decimal place.
std::string DPP_EXPORT dpp::utility::timestamp | ( | time_t | ts, |
time_format | tf | ||
) |
Return a mentionable timestamp (used in a discord embed)
ts | Time stamp to convert |
tf | Format of timestamp using dpp::utility::time_format |
size_t DPP_EXPORT dpp::utility::utf8len | ( | const std::string & | str | ) |
Returns the length of a UTF-8 string in codepoints.
str | string to count length of |
std::string DPP_EXPORT dpp::utility::utf8substr | ( | const std::string & | str, |
std::string::size_type | start, | ||
std::string::size_type | length | ||
) |
Return substring of a UTF-8 encoded string in codepoints.
str | string to return substring from |
start | start codepoint offset |
length | length in codepoints |
std::string dpp::utility::validate | ( | const std::string & | value, |
size_t | _min, | ||
size_t | _max, | ||
const std::string & | exception_message | ||
) |
Validate a string value In the event the length of the string is less than _min, then an exception of type dpp:length_exception will be thrown. If the string is longer than _max UTF8 codepoints it will be truncated to fit.
value | The value to validate |
_min | Minimum length |
_max | Maximum length |
exception_message | Exception message to throw if value length < _min |
dpp::length_exception | if value UTF8 length < _min |
const std::string dpp::utility::cdn_host = "https://cdn.discordapp.com" |
The base URL for CDN content such as profile pictures and guild icons.