40 #ifndef REST_CLIENT_H_ 214 #define ID(X) X ## "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" 305 char discriminator[5];
356 #define TOKEN_TO_STR(X) (X == Bearer) ? "Bearer" : (X == Bot) ? "Bot" : (X == User) ? "User" : "" 422 #define DiscordClient_open_auth(X) DiscordClient_open((X)->type, (X)->token) 525 char afk_channel_id[21];
531 char embed_channel_id[21];
551 char widget_channel_id[21];
553 char system_channel_id[21];
635 char last_message_id[21];
757 #define DSCRD_FILE_NULL ((DscrdFile *) "dummy") 982 int Webhook_execute (
Webhook * webhook,
const char * message,
const char * username,
const char * avatar_url);
Allows for deafening of members in a voice channel.
Definition: dscrd.h:195
Streaming ...
Definition: dscrd.h:228
Allows for viewing of audit logs.
Definition: dscrd.h:169
indicates last value of types
Definition: dscrd.h:77
DiscordGuild * DiscordGuild_get(DiscordClient *client, char *guild_id)
DiscordGuild ** DiscordGuilds_get(DiscordClient *client)
0 element, will be set if uninitialized, therefore ignored
Definition: dscrd.h:58
void WebhookList_destroy(WebhookList *list)
bool tts
whether this was a TTS message
Definition: dscrd.h:822
DscrdFile
Definition: dscrd.h:73
Allows for muting members in a voice channel.
Definition: dscrd.h:193
Webhook
Definition: dscrd.h:66
Activity object (game)
Definition: dscrd.h:239
Allows all permissions and bypasses channel permission overwrites.
Definition: dscrd.h:161
Discord file wrapper.
Definition: dscrd.h:765
struct DiscordClient_s * discord_client
Definition: dscrd.h:565
char * name
guild name
Definition: dscrd.h:511
bool nsfw
Definition: dscrd.h:634
uint8_t _type
Definition: dscrd.h:509
Allows guild members to view a channel, which includes reading messages in text channels.
Definition: dscrd.h:171
int timestamp_stop
Definition: dscrd.h:255
Listening to ...
Definition: dscrd.h:230
char * encoded
Definition: dscrd.h:774
Allows for using voice-activity-detection in a voice channel.
Definition: dscrd.h:199
Online.
Definition: dscrd.h:281
DiscordChannel * DiscordChannelList_pop(DiscordChannelList *list, int i)
Allows management and editing of the guild.
Definition: dscrd.h:165
DiscordClient
Definition: dscrd.h:68
DiscordChannelList * DiscordChannels_in_guild(DiscordGuild *guild)
char * edited_timestamp
when this message was edited (or null if never)
Definition: dscrd.h:820
unsigned char user_status
current user status, one of dscrd_user_status
Definition: dscrd.h:389
Allows for joining of a voice channel.
Definition: dscrd.h:189
AFK.
Definition: dscrd.h:285
void DiscordClient_close(DiscordClient *d)
int DiscordChannel_send_message_simple(DiscordChannel *channel, const char *message)
int bitrate
Definition: dscrd.h:637
char * content
contents of the message
Definition: dscrd.h:816
int Webhook_execute(Webhook *webhook, const char *message, const char *username, const char *avatar_url)
Webhook * Webhook_get_no_auth_url(const char *url)
Allows kicking members.
Definition: dscrd.h:157
bool pinned
whether this message is pinned
Definition: dscrd.h:838
Allows the usage of custom emojis from other servers.
Definition: dscrd.h:187
activity_types
Activity types.
Definition: dscrd.h:224
permissions_e
Permissions also described at https://discordapp.com/developers/docs/topics/permissions.
Definition: dscrd.h:153
Discord channel.
Definition: dscrd.h:619
char * icon
icon hash
Definition: dscrd.h:513
Webhook ** w
Definition: dscrd.h:915
int dscrd_initialize(void)
int DiscordClient_set_status(DiscordClient *client, enum dscrd_user_status status)
uint8_t _type
Definition: dscrd.h:370
void DiscordChannel_destroy(DiscordChannel *channel)
Discord user.
Definition: dscrd.h:297
char * filename
Definition: dscrd.h:771
Allows management and editing of roles.
Definition: dscrd.h:207
uint32_t data_len
Definition: dscrd.h:767
char * icon
Definition: dscrd.h:640
struct DiscordUser_s * user
DiscordUser_s pointer of current user; equal to DiscordClient::me except it's a pointer.
Definition: dscrd.h:386
int position
"sorting position of the channel"
Definition: dscrd.h:629
char * avatar
the default avatar of the webhook (optional)
Definition: dscrd.h:899
must have a verified phone number
Definition: dscrd.h:147
int DiscordMessage_delete(DiscordMessage *message)
Delete specified message.
DiscordClient * discord_client
Definition: dscrd.h:848
Playing ...
Definition: dscrd.h:226
Discord guild.
Definition: dscrd.h:505
Allows for sending messages in a channel.
Definition: dscrd.h:173
int count
Definition: dscrd.h:914
void DiscordChannelList_destroy(DiscordChannelList *channels)
enum dscrd_type_e dscrd_type
Discord datatypes.
int DiscordClient_set_game(DiscordClient *client, DiscordActivity *activity)
char * token
pure token
Definition: dscrd.h:379
int DiscordClient_gateway(DiscordClient *client, int flags)
bool verified
whether the email on this account has been verified email
Definition: dscrd.h:313
int Webhook_move(Webhook *webhook, DiscordChannel *channel)
Offline.
Definition: dscrd.h:289
bool temporary
tells if created DiscordClient is temporary and has to be freed when connected object is freed...
Definition: dscrd.h:392
struct WebhookList_s WebhookList
WebhookList structure.
int count
Definition: dscrd.h:650
void DiscordMessage_destroy(DiscordMessage *msg)
Allows for using the @everyone tag to notify all users in a channel, and the @here tag to notify all ...
Definition: dscrd.h:185
DiscordChannel * DiscordChannel_get_fast(DiscordClient *client, char *channel_id)
struct DiscordChannel_s DiscordChannel
Discord channel.
struct DiscordGuild_s ** DiscordClient_lazy_guilds(DiscordClient *client)
char * name
the default name of the webhook (optional)
Definition: dscrd.h:897
int data_type
type of d pointer, one of dscrd_type_e
Definition: dscrd.h:1075
char * name
Definition: dscrd.h:631
int default_message_notifications
default message notifications level
Definition: dscrd.h:535
int DiscordMessage_callback_mentions(DiscordClient *client, int(*callback)(DiscordMessage *))
uint8_t _type
reserved
Definition: dscrd.h:810
void * data
data pointer
Definition: dscrd.h:1073
gateway_flags
Definition: dscrd.h:433
uint8_t _type
reserved
Definition: dscrd.h:243
Allows for uploading images and files.
Definition: dscrd.h:181
int explicit_content_filter
explicit content filter level
Definition: dscrd.h:537
Allows for using priority speaker in a voice channel.
Definition: dscrd.h:201
WebhookList structure.
Definition: dscrd.h:913
DiscordMessage
Definition: dscrd.h:75
int DiscordChannel_modify(DiscordChannel *channel,...)
struct DiscordUser_s DiscordUser
Discord user.
Allows for modification of own nickname.
Definition: dscrd.h:203
char * topic
Definition: dscrd.h:632
struct Webhook_s Webhook
Webhook structure.
void DiscordGuild_destroy(DiscordGuild *guild)
Allows for deletion of other users messages.
Definition: dscrd.h:177
int type
channel type, one of channel_types
Definition: dscrd.h:625
uint8_t _type
reserved for type detection
Definition: dscrd.h:623
must be a member of the server for longer than 10 minutes
Definition: dscrd.h:145
char * data_base64
Definition: dscrd.h:773
char * auth_string
Authentication header used by rest library.
Definition: dscrd.h:381
DiscordMessage * DiscordMessage_get(DiscordChannel *channel, char *message_id)
struct DiscordClient_s * discord_client
Definition: dscrd.h:317
Allows for the addition of reactions to messages.
Definition: dscrd.h:167
void dscrd_overwrite_api(int api)
int timestamp_start
Definition: dscrd.h:253
bool embed_enabled
is this guild embeddable (e.g. widget)
Definition: dscrd.h:529
DiscordUser * DiscordUser_get(struct DiscordClient_s *client, char *user_id)
bool mention_everyone
whether this message mentions everyone
Definition: dscrd.h:824
DiscordClient * discord_client
DiscordClient of the Webhook.
Definition: dscrd.h:905
token_type type
Definition: dscrd.h:482
token_type type
Session type, one of token_type_e.
Definition: dscrd.h:377
int dscrd_has_gateway(void)
uint8_t _type
Definition: dscrd.h:769
void DscrdFile_destroy(DscrdFile *file)
Webhook * Webhook_create(DiscordChannel *channel, char *name, DscrdFile *avatar)
const char * dscrd_error(void)
struct DiscordClient_s DiscordClient
Discord session.
int Webhook_delete(Webhook *webhook)
Allows for speaking in a voice channel.
Definition: dscrd.h:191
DiscordClient * discord_client
Definition: dscrd.h:646
DiscordUser
Definition: dscrd.h:64
bool mfa_enabled
whether the user has two factor enabled on their account identify
Definition: dscrd.h:311
char * splash
splash hash (?)
Definition: dscrd.h:515
DiscordUser ** mentions
users specifically mentioned in the message
Definition: dscrd.h:826
void DiscordUser_destroy(DiscordUser *user)
char * data
Definition: dscrd.h:772
WebhookList * Webhooks_in_guild(DiscordClient *client, DiscordGuild *guild)
char * timestamp
when this message was sent
Definition: dscrd.h:818
Allows for moving of members between voice channels.
Definition: dscrd.h:197
Allows management and editing of emojis.
Definition: dscrd.h:211
Allows management and editing of webhooks.
Definition: dscrd.h:209
DscrdFile * DscrdFile_get_mime(const char *filename, const char *mime_type)
uint8_t _type
Definition: dscrd.h:301
char * event
response type
Definition: dscrd.h:1071
http_method
HTTP Methods.
Definition: dscrd.h:46
token_type_e
Definition: dscrd.h:352
bool owner
whether or not the user is the owner of the guild
Definition: dscrd.h:517
int Webhook_modify(Webhook *webhook, const char *name, DscrdFile *avatar)
int mfa_level
required MFA level for the guild
Definition: dscrd.h:545
int dscrdd_auth(DscrdAuth *auth, const char *app_name)
int verification_level
verification level required for the guild
Definition: dscrd.h:533
Do not disturb.
Definition: dscrd.h:283
int afk_timeout
afk timeout in seconds
Definition: dscrd.h:527
int dscrd_terminate(void)
WebhookList * Webhooks_in_channel(DiscordClient *client, DiscordChannel *channel)
DiscordClient * DiscordClient_open(token_type type, const char *token)
unrestricted
Definition: dscrd.h:139
void Webhook_destroy(Webhook *webhook)
char * name
Definition: dscrd.h:246
DiscordGuild
Definition: dscrd.h:60
DiscordChannel * DiscordChannel_get(DiscordClient *client, char *channel_id)
struct DiscordChannelList_s DiscordChannelList
RestResp
Definition: dscrd.h:70
char application_id[21]
application id for the game
Definition: dscrd.h:241
DscrdFile * DscrdFile_get(const char *filename)
int type
type of message
Definition: dscrd.h:842
char * state
the user's current party status
Definition: dscrd.h:260
DiscordGuild * DiscordGuild_by_name(DiscordClient *client, char *guild_name)
Allows creation of instant invites.
Definition: dscrd.h:155
int DiscordGateway_callback(DiscordClient *client, char *event, int(*func)(GatewayResp *), void *userdata)
struct DiscordMessage_s DiscordMessage
void * c
Pointer used internally by rest library, it's casted default to void except in library.
Definition: dscrd.h:372
int Webhook_execute_simple(Webhook *webhook, const char *message)
Links sent by users with this permission will be auto-embedded.
Definition: dscrd.h:179
must be registered on Discord for longer than 5 minutes
Definition: dscrd.h:143
char * region
voice region id for the guild
Definition: dscrd.h:523
Allows for reading of message history.
Definition: dscrd.h:183
DiscordChannel
Definition: dscrd.h:62
char * url
stream url, required if type is ACTIVITY_STREAMING, only twitch.tv supported
Definition: dscrd.h:250
int permissions
total permissions for the user in the guild (does not include channel overrides)
Definition: dscrd.h:521
void DiscordGuilds_destroy(DiscordGuild **guilds)
char * mime
Definition: dscrd.h:770
DiscordChannel ** c
Definition: dscrd.h:651
must have verified email on account
Definition: dscrd.h:141
Webhook structure.
Definition: dscrd.h:882
DiscordUser * author
author
Definition: dscrd.h:814
bool bot
whether the user belongs to an OAuth2 application identify
Definition: dscrd.h:309
struct DiscordGuild_s DiscordGuild
Discord guild.
int DiscordMessage_delete_id(DiscordClient *client, const char *channel_id, const char *message_id)
Delete message after channel and message id.
DiscordUser * DiscordUser_me(struct DiscordClient_s *client)
char * username
username, not unique across platform identify
Definition: dscrd.h:303
int type
activity type
Definition: dscrd.h:248
int DiscordMessage_callback_all(DiscordClient *client, int(*callback)(DiscordMessage *))
TODO.
Webhook * Webhook_get(DiscordClient *client, char *id)
DiscordMessage * DiscordMessage_new_simple(DiscordChannel *channel, const char *message)
new message (returns back)
void * gateway
pointer to DiscordGateway session (if any)
Definition: dscrd.h:396
DiscordUser user
user object the user this webhook was created by (not returned when getting a webhook with its token)...
Definition: dscrd.h:893
channel_types
Channel types.
Definition: dscrd.h:659
unsigned char api
Definition: dscrd.h:375
struct DiscordActivity_s DiscordActivity
Activity object (game)
bool instance
whether or not the activity is an instanced game session
Definition: dscrd.h:272
uint8_t _type
Definition: dscrd.h:887
enum permissions_e permissions
Permissions also described at https://discordapp.com/developers/docs/topics/permissions.
unsigned char terminate
tell callback we're finished, free all memory etc.
Definition: dscrd.h:1077
struct DscrdFile_s DscrdFile
Discord file wrapper.
const char * dscrd_error_long(void)
Allows for modification of other users nicknames.
Definition: dscrd.h:205
DiscordChannel * DiscordChannel_by_name(DiscordGuild *guild, char *channel_name)
uint32_t data_base64_len
Definition: dscrd.h:768
message_types
Definition: dscrd.h:852
Allows management and editing of channels.
Definition: dscrd.h:163
struct GatewayResp_s GatewayResp
void * userdata
pointer to provided userdata
Definition: dscrd.h:1079
dscrd_type_e
Discord datatypes.
Definition: dscrd.h:56
struct DscrdAuth_s DscrdAuth
Shown as offline.
Definition: dscrd.h:287
Webhook * Webhook_get_no_auth(char *id, char *token)
int gateway_flags
flags
Definition: dscrd.h:398
char * details
what the player is currently doing
Definition: dscrd.h:258
char ** features
roles in the guild
Definition: dscrd.h:543
Allows for sending of /tts messages.
Definition: dscrd.h:175
enum token_type_e token_type
Allows banning members.
Definition: dscrd.h:159
int flags
activity flags ORd together, describes what the payload includes
Definition: dscrd.h:274
DiscordUser * user_p
same as user but pointer
Definition: dscrd.h:895
int user_limit
Definition: dscrd.h:638
dscrd_verification_level
Definition: dscrd.h:137
gateway_callback_resp
Definition: dscrd.h:1082
bool use_token
prefer to use token instead of auth
Definition: dscrd.h:903
Discord session.
Definition: dscrd.h:366
dscrd_user_status
User status.
Definition: dscrd.h:279
char * email
the user's email
Definition: dscrd.h:315
bool widget_enabled
whether or not the server widget is enabled
Definition: dscrd.h:549
char * avatar
avatar hash
Definition: dscrd.h:307
char * last_pin_timestamp
Definition: dscrd.h:644