]> gitweb.ps.run Git - matrix_esp_thesis/blobdiff - src/matrix.c
start working on Sync example (reply to to_device messages)
[matrix_esp_thesis] / src / matrix.c
index 18b700a2e412b1d3699b1781bb1a9cb40e7d0930..147d9198730c1221a7b0b6db2f44270afefc28eb 100644 (file)
@@ -842,11 +842,34 @@ MatrixClientSendEventEncrypted(
 bool\r
 MatrixClientSync(\r
     MatrixClient * client,\r
-    char * outSyncBuffer, int outSyncCap)\r
+    char * outSyncBuffer, int outSyncCap,\r
+    const char * nextBatch)\r
 {\r
+    // filter={\"event_fields\":[\"to_device\"]}\r
+    static char url[MAX_URL_LEN];\r
+    snprintf(url, MAX_URL_LEN,\r
+        "/_matrix/client/v3/sync%s",\r
+        strlen(nextBatch) > 0 ? "?since=" : "");\r
+    \r
+    int index = strlen(url);\r
+\r
+    for (int i = 0; i < strlen(nextBatch); i++) {\r
+        char c = nextBatch[i];\r
+\r
+        if (c == '~') {\r
+            url[index++] = '%';\r
+            url[index++] = '7';\r
+            url[index++] = 'E';\r
+        }\r
+        else {\r
+            url[index++] = c;\r
+        }\r
+    }\r
+    url[index] = '\0';\r
+\r
     return\r
         MatrixHttpGet(client,\r
-            "/_matrix/client/v3/sync",\r
+            url,\r
             outSyncBuffer, outSyncCap,\r
             true);\r
 }\r