45 行
1.4 KiB
C
45 行
1.4 KiB
C
|
#include <string.h>
|
|||
|
|
|||
|
#include <weechat/weechat-plugin.h>
|
|||
|
#include <curl/curl.h>
|
|||
|
#include <cjson/cJSON.h>
|
|||
|
|
|||
|
#include "commands.h"
|
|||
|
#include "api.h"
|
|||
|
#include "roomsinfo.h"
|
|||
|
|
|||
|
void getRoomsInfo (struct t_gui_buffer *buffer, const char *token) {
|
|||
|
ApiRequest request = {
|
|||
|
.url = "https://api.chatwork.com/v2/rooms",
|
|||
|
.token = token,
|
|||
|
};
|
|||
|
ApiResponse response = makeApiRequest(&request);
|
|||
|
|
|||
|
if (response.result != CURLE_OK) {
|
|||
|
weechat_printf(buffer, "GETリクエストエラー:%s\n", curl_easy_strerror(response.result));
|
|||
|
} else {
|
|||
|
cJSON *root = response.data;
|
|||
|
if (root != NULL) {
|
|||
|
int size = cJSON_GetArraySize(root);
|
|||
|
|
|||
|
for (int i = 0; i < size; i++) {
|
|||
|
cJSON *room = cJSON_GetArrayItem(root, i);
|
|||
|
int room_id = cJSON_GetObjectItem(room, "room_id")->valueint;
|
|||
|
const char *name = cJSON_GetObjectItem(room, "name")->valuestring;
|
|||
|
const char *type = cJSON_GetObjectItem(room, "type")->valuestring;
|
|||
|
if (strcmp(type, "my") == 0) {
|
|||
|
weechat_printf(buffer, "%d - %s\n", room_id, name);
|
|||
|
} else if (strcmp(type, "direct") == 0) {
|
|||
|
weechat_printf(buffer, "%d - DM %s\n", room_id, name);
|
|||
|
} else if (strcmp(type, "group") == 0) {
|
|||
|
weechat_printf(buffer, "%d - グループ %s\n", room_id, name);
|
|||
|
}
|
|||
|
}
|
|||
|
} else {
|
|||
|
weechat_printf(buffer, "JSONパーシングエラー。\n");
|
|||
|
}
|
|||
|
|
|||
|
cJSON_Delete(root);
|
|||
|
}
|
|||
|
}
|