aboutsummaryrefslogtreecommitdiffstats
path: root/example
diff options
context:
space:
mode:
authorturret <turret@duck.com>2025-06-22 19:15:47 -0500
committerturret <turret@duck.com>2025-06-22 19:15:47 -0500
commitabb1c579d29b3fb61e79601518799beca46609c3 (patch)
tree8585a73b78efb5b0b2c52fb0e4b6f46ff134a1e5 /example
parent35d7228fb15bc7b262745fef179f79d1ac0b4045 (diff)
downloaddiscord-bot-skeleton-abb1c579d29b3fb61e79601518799beca46609c3.tar.gz
discord-bot-skeleton-abb1c579d29b3fb61e79601518799beca46609c3.tar.bz2
discord-bot-skeleton-abb1c579d29b3fb61e79601518799beca46609c3.zip
net: api changes, data export, ident, an more
Move HELLO IDENT functionality into util/net Add ready event in example/hello, grab app id and print info Change http_request family of functions - Remove bufsiz for response code - Remove post input pipe in exchange for simple writebuf Add heartbeat latency ack tracking Add websocket handle close function (dummy function, to be extended upon) Add message for invalid token
Diffstat (limited to 'example')
-rw-r--r--example/hello.c43
1 files changed, 20 insertions, 23 deletions
diff --git a/example/hello.c b/example/hello.c
index fe208d5..41ef753 100644
--- a/example/hello.c
+++ b/example/hello.c
@@ -7,35 +7,32 @@
#include <dbs/event.h>
#include <dbs/log.h>
+#include <dbs/util.h>
extern CURL *ws_handle;
+char *app_id;
int hello(cJSON *data)
{
- cJSON *ev_payload = cJSON_CreateObject();
- cJSON *ev_data = cJSON_CreateObject();
- cJSON_AddNumberToObject(ev_payload, "op", 2);
- cJSON_AddItemToObject(ev_payload, "d", ev_data);
-
- cJSON_AddStringToObject(ev_data, "token", getenv("TOKEN"));
- cJSON_AddNumberToObject(ev_data, "intents", 0);
-
- cJSON *properties = cJSON_CreateObject();
- cJSON_AddItemToObject(ev_data, "properties", properties);
- cJSON_AddStringToObject(properties, "browser", "DBS");
- cJSON_AddStringToObject(properties, "device", "DBS");
-
- struct utsname unamed;
- uname(&unamed);
- cJSON_AddStringToObject(properties, "os", unamed.sysname);
-
- char *msg = cJSON_PrintUnformatted(ev_payload);
- size_t sent;
- curl_ws_send(ws_handle, msg, strlen(msg), &sent, 0, CURLWS_TEXT);
- free(msg);
- cJSON_Delete(ev_payload);
- print("hello: sent IDENT");
+ print("hello: hello from userland!");
return 0;
}
declare_event(HELLO, hello);
+
+int ready(cJSON *data)
+{
+ print("hello: received ready event!");
+
+ cJSON *app = cJSON_GetObjectItemCaseSensitive(data, "application");
+ char *id = js_getStr(app, "id");
+ app_id = malloc(strlen(id) + 1);
+ strcpy(app_id, id);
+
+ cJSON *user = cJSON_GetObjectItemCaseSensitive(data, "user");
+ char *username = js_getStr(user, "username");
+ print("hello: logged in! my name is %s (id %s)", username, app_id);
+
+ return 0;
+}
+declare_event(READY, ready);