7 #define SERVER "https://matrix.org"
\r
8 #define USER_ID "@pscho:matrix.org"
\r
10 #define DEVICE_ID "ULZZOKJBYN"
\r
11 #define SENDER_KEY "cjP41XzRlY+pd8DoiBuKQJj9o15mrx6gkrpqTkAPZ2c"
\r
12 #define ROOM_ID "!XKFUjAsGrSSrpDFIxB:matrix.org"
\r
13 #define EVENT_ID "$vOS09eUaI0CduqAcaIU5ZVk6ljLQfLspz7UThP8vaUM"
\r
14 #define SESSION_ID "90UbGLue3ADVhvW7hFjoA2c6yg0JJKs/lPdMDZXnZAk"
\r
16 #define STATIC static
\r
21 MatrixClient * client = (MatrixClient*)malloc(sizeof(MatrixClient));
\r
22 MatrixClientInit(client);
\r
24 MatrixHttpInit(&client->hc, SERVER);
\r
25 MatrixClientSetUserId(client, USER_ID);
\r
27 MatrixClientLoginPassword(client,
\r
31 printf("deviceId: %s\n", client->deviceId);
\r
32 MatrixClientGenerateOnetimeKeys(client, 10);
\r
33 MatrixClientUploadOnetimeKeys(client);
\r
34 MatrixClientUploadDeviceKeys(client);
\r
36 STATIC char eventBuffer[1024];
\r
37 MatrixClientGetRoomEvent(client,
\r
41 printf("event: %s\n", eventBuffer);
\r
43 #define SYNC_BUFFER_SIZE 1024*10
\r
45 // char * syncBuffer = (char*)malloc(SYNC_BUFFER_SIZE);
\r
46 STATIC char syncBuffer[SYNC_BUFFER_SIZE];
\r
47 STATIC char nextBatch[1024];
\r
49 while (! client->verified) {
\r
50 MatrixClientSync(client, syncBuffer, SYNC_BUFFER_SIZE, nextBatch, 1024);
\r
53 printf("verified!\n");
\r
55 // create and share megolm out session
\r
56 MatrixMegolmOutSession * megolmOutSession;
\r
57 MatrixClientNewMegolmOutSession(client,
\r
60 printf("megolm session id: %.10s... key: %.10s...\n", megolmOutSession->id, megolmOutSession->key);
\r
61 MatrixClientShareMegolmOutSession(client,
\r
66 // send 10 random messages
\r
67 for (int i = 0; i < 10; i++) {
\r
68 static const char * msgs[] = { "A", "B", "C" };
\r
69 static char msg[128];
\r
70 snprintf(msg, 128, "{\"body\":\"%s\",\"msgtype\":\"m.text\"}", msgs[rand()%(sizeof(msgs)/sizeof(msgs[0]))]);
\r
72 MatrixClientSendEventEncrypted(client,
\r
78 MatrixClientDeleteDevice(client);
\r
80 MatrixHttpDeinit(&client->hc);
\r