5 #define SERVER "https://matrix.org"
\r
6 #define USER_ID "@pscho:matrix.org"
\r
7 #define USERNAME "pscho"
\r
8 #define PASSWORD "Wc23EbmB9G3faMq"
\r
9 #define DISPLAYNAME "SyncClient"
\r
11 #define ROOM_ID "!XKFUjAsGrSSrpDFIxB:matrix.org"
\r
12 #define EVENT_ID "$_-y42DkC3OmJ_s40gYko7jMwrUQhoXfEut2pMV3E2J8"
\r
13 #define SESSION_ID "tzdnJbDrm82D/RpgkZKpILTifQ5Rads+tVzp3ax8+Ls"
\r
18 MatrixClient client;
\r
19 MatrixClientInit(&client);
\r
21 MatrixHttpInit(&client.hc, SERVER);
\r
23 MatrixClientSetUserId(&client, USER_ID);
\r
25 MatrixClientLoginPassword(&client,
\r
30 MatrixClientGenerateOnetimeKeys(&client, 10);
\r
31 MatrixClientUploadOnetimeKeys(&client);
\r
32 MatrixClientUploadDeviceKeys(&client);
\r
35 static char eventBuffer[1024];
\r
36 MatrixClientGetRoomEvent(&client,
\r
41 printf("event: %s\n", eventBuffer);
\r
44 while (getchar() != 'q') {
\r
45 static char nextBatch[1024];
\r
47 static char syncBuffer[1024*50];
\r
48 MatrixClientSync(&client, syncBuffer, 1024*50, nextBatch);
\r
52 const char * s = syncBuffer;
\r
53 int slen = strlen(syncBuffer);
\r
56 int koff, klen, voff, vlen, vtype, off = 0;
\r
57 for (off = 0; (off = mjson_next(s, slen, off, &koff, &klen,
\r
58 &voff, &vlen, &vtype)) != 0; ) {
\r
59 const char * key = s + koff;
\r
60 const char * val = s + voff;
\r
62 printf("%.*s: %.100s\n", klen, key, val);
\r
66 mjson_get_string(s, slen, "$.next_batch", nextBatch, 1024);
\r
68 const char * events;
\r
71 mjson_find(s, slen, "$.to_device.events", &events, &eventsLen);
\r
73 if (res != MJSON_TOK_INVALID) {
\r
75 int koff, klen, voff, vlen, vtype, off = 0;
\r
76 for (off = 0; (off = mjson_next(events, eventsLen, off, &koff, &klen,
\r
77 &voff, &vlen, &vtype)) != 0; ) {
\r
78 const char * val = events + voff;
\r
80 printf("%.*s\n", vlen, val);
\r
87 MatrixClientDeleteDevice(&client);
\r
89 MatrixHttpDeinit(&client.hc);
\r