From 820e76108bc85051d64431495d70f27379756cc8 Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Thu, 12 Sep 2019 18:05:01 +0200 Subject: Added liveapi support, and the maar tool (mark all as read) --- liveapi/messages.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 liveapi/messages.c (limited to 'liveapi/messages.c') diff --git a/liveapi/messages.c b/liveapi/messages.c new file mode 100644 index 0000000..2ef7958 --- /dev/null +++ b/liveapi/messages.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include +#include "libuwsc/uwsc.h" + +#include "liveapi.h" +#include "messages.h" + +struct methodid { + size_t id; + char sid[33]; +}; + +static const struct methodid* get_next_method_id(void) +{ + static struct methodid methodid = { .id = 1, .sid = "" }; + snprintf(methodid.sid, sizeof(methodid.sid), "%zu", ++methodid.id); + return &methodid; +} + +void liveapi_connect(void) +{ + cJSON* json = cJSON_CreateObject(); + cJSON_AddItemToObject(json, "msg", cJSON_CreateString("connect")); + cJSON_AddItemToObject(json, "version", cJSON_CreateString("1")); + + cJSON* support = cJSON_CreateArray(); + cJSON_AddItemToArray(support, cJSON_CreateString("1")); + cJSON_AddItemToArray(support, cJSON_CreateString("pre2")); + cJSON_AddItemToArray(support, cJSON_CreateString("pre1")); + cJSON_AddItemToObject(json, "support", support); + + liveapi_send_json(0, json); +} + +void liveapi_login(const char * authToken) +{ + const struct methodid * id = get_next_method_id(); + + cJSON* json = cJSON_CreateObject(); + cJSON_AddItemToObject(json, "msg", cJSON_CreateString("method")); + cJSON_AddItemToObject(json, "id", cJSON_CreateString(id->sid)); + cJSON_AddItemToObject(json, "method", cJSON_CreateString("login")); + + cJSON* params = cJSON_CreateArray(); + cJSON* resume = cJSON_CreateObject(); + cJSON_AddItemToObject(resume, "resume", cJSON_CreateString(authToken)); + cJSON_AddItemToArray(params, resume); + cJSON_AddItemToObject(json, "params", params); + + liveapi_send_json(id->id, json); +} + +void liveapi_mark_read(const char * rid) +{ + const struct methodid * id = get_next_method_id(); + + cJSON* json = cJSON_CreateObject(); + cJSON_AddItemToObject(json, "msg", cJSON_CreateString("method")); + cJSON_AddItemToObject(json, "id", cJSON_CreateString(id->sid)); + cJSON_AddItemToObject(json, "method", cJSON_CreateString("readMessages")); + + cJSON* params = cJSON_CreateArray(); + cJSON_AddItemToArray(params, cJSON_CreateString(rid)); + cJSON_AddItemToObject(json, "params", params); + + liveapi_send_json(id->id, json); +} -- cgit v1.2.3