From 217f98a36c2fb1238b7fe23161db224c90369c65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Fri, 3 May 2024 13:56:19 +0800 Subject: [PATCH] Global: tidy json result formats --- src/detection/battery/battery_linux.c | 3 --- src/modules/battery/battery.c | 33 ++++++++++++++----------- src/modules/bluetooth/bluetooth.c | 22 ++++++++--------- src/modules/brightness/brightness.c | 6 ----- src/modules/datetime/datetime.c | 2 +- src/modules/display/display.c | 1 + src/modules/gamepad/gamepad.c | 6 ----- src/modules/localip/localip.c | 9 +------ src/modules/poweradapter/poweradapter.c | 32 +++++++++++++----------- src/modules/sound/sound.c | 6 ----- src/modules/users/users.c | 3 +-- src/modules/wifi/wifi.c | 5 ---- 12 files changed, 51 insertions(+), 77 deletions(-) diff --git a/src/detection/battery/battery_linux.c b/src/detection/battery/battery_linux.c index 080183c8d..d77968a37 100644 --- a/src/detection/battery/battery_linux.c +++ b/src/detection/battery/battery_linux.c @@ -170,8 +170,5 @@ const char* ffDetectBattery(FFBatteryOptions* options, FFlist* results) ffStrbufSubstrBefore(&baseDir, baseDirLength); } - if(results->length == 0) - return "\"/sys/class/power_supply/\" doesn't contain any battery folder"; - return NULL; } diff --git a/src/modules/battery/battery.c b/src/modules/battery/battery.c index 7a5c82ebb..ee82e42d5 100644 --- a/src/modules/battery/battery.c +++ b/src/modules/battery/battery.c @@ -84,23 +84,28 @@ void ffPrintBattery(FFBatteryOptions* options) if (error) { ffPrintError(FF_BATTERY_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", error); + return; } - else + if(results.length == 0) { - for(uint8_t i = 0; i < (uint8_t) results.length; i++) - { - FFBatteryResult* result = ffListGet(&results, i); - printBattery(options, result, i); + ffPrintError(FF_BATTERY_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "%s", "No batteries found"); + return; + } - ffStrbufDestroy(&result->manufacturer); - ffStrbufDestroy(&result->modelName); - ffStrbufDestroy(&result->technology); - ffStrbufDestroy(&result->status); - ffStrbufDestroy(&result->serial); - ffStrbufDestroy(&result->manufactureDate); - } - if(results.length == 0) - ffPrintError(FF_BATTERY_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No batteries found"); + for(uint32_t i = 0; i < results.length; i++) + { + FFBatteryResult* result = ffListGet(&results, i); + printBattery(options, result, (uint8_t) i); + } + + FF_LIST_FOR_EACH(FFBatteryResult, result, results) + { + ffStrbufDestroy(&result->manufacturer); + ffStrbufDestroy(&result->modelName); + ffStrbufDestroy(&result->technology); + ffStrbufDestroy(&result->status); + ffStrbufDestroy(&result->serial); + ffStrbufDestroy(&result->manufactureDate); } } diff --git a/src/modules/bluetooth/bluetooth.c b/src/modules/bluetooth/bluetooth.c index 37f62bb60..c638252e7 100644 --- a/src/modules/bluetooth/bluetooth.c +++ b/src/modules/bluetooth/bluetooth.c @@ -150,19 +150,17 @@ void ffGenerateBluetoothJsonResult(FF_MAYBE_UNUSED FFBluetoothOptions* options, yyjson_mut_obj_add_str(doc, module, "error", error); return; } - else - { - yyjson_mut_val* arr = yyjson_mut_obj_add_arr(doc, module, "result"); - FF_LIST_FOR_EACH(FFBluetoothResult, item, results) - { - yyjson_mut_val* obj = yyjson_mut_arr_add_obj(doc, arr); - yyjson_mut_obj_add_strbuf(doc, obj, "address", &item->address); - yyjson_mut_obj_add_uint(doc, obj, "battery", item->battery); - yyjson_mut_obj_add_bool(doc, obj, "connected", item->connected); - yyjson_mut_obj_add_strbuf(doc, obj, "name", &item->name); - yyjson_mut_obj_add_strbuf(doc, obj, "type", &item->type); - } + yyjson_mut_val* arr = yyjson_mut_obj_add_arr(doc, module, "result"); + + FF_LIST_FOR_EACH(FFBluetoothResult, item, results) + { + yyjson_mut_val* obj = yyjson_mut_arr_add_obj(doc, arr); + yyjson_mut_obj_add_strbuf(doc, obj, "address", &item->address); + yyjson_mut_obj_add_uint(doc, obj, "battery", item->battery); + yyjson_mut_obj_add_bool(doc, obj, "connected", item->connected); + yyjson_mut_obj_add_strbuf(doc, obj, "name", &item->name); + yyjson_mut_obj_add_strbuf(doc, obj, "type", &item->type); } FF_LIST_FOR_EACH(FFBluetoothResult, device, results) diff --git a/src/modules/brightness/brightness.c b/src/modules/brightness/brightness.c index 55548f902..f5defe068 100644 --- a/src/modules/brightness/brightness.c +++ b/src/modules/brightness/brightness.c @@ -154,12 +154,6 @@ void ffGenerateBrightnessJsonResult(FF_MAYBE_UNUSED FFBrightnessOptions* options return; } - if(result.length == 0) - { - yyjson_mut_obj_add_str(doc, module, "error", "No result is detected."); - return; - } - yyjson_mut_val* arr = yyjson_mut_arr(doc); yyjson_mut_obj_add_val(doc, module, "result", arr); diff --git a/src/modules/datetime/datetime.c b/src/modules/datetime/datetime.c index edaca593d..5027cc803 100644 --- a/src/modules/datetime/datetime.c +++ b/src/modules/datetime/datetime.c @@ -152,7 +152,7 @@ void ffGenerateDateTimeJsonConfig(FFDateTimeOptions* options, yyjson_mut_doc* do void ffGenerateDateTimeJsonResult(FF_MAYBE_UNUSED FFDateTimeOptions* options, yyjson_mut_doc* doc, yyjson_mut_val* module) { - yyjson_mut_obj_add_uint(doc, module, "result", ffTimeGetNow()); + yyjson_mut_obj_add_strcpy(doc, module, "result", ffTimeToFullStr(ffTimeGetNow())); } void ffPrintDateTimeHelpFormat(void) diff --git a/src/modules/display/display.c b/src/modules/display/display.c index 98bc3ac35..0ca9e0748 100644 --- a/src/modules/display/display.c +++ b/src/modules/display/display.c @@ -279,6 +279,7 @@ void ffGenerateDisplayJsonResult(FF_MAYBE_UNUSED FFDisplayOptions* options, yyjs yyjson_mut_obj_add_str(doc, module, "error", "Couldn't detect display"); return; } + yyjson_mut_val* arr = yyjson_mut_obj_add_arr(doc, module, "result"); FF_LIST_FOR_EACH(FFDisplayResult, item, dsResult->displays) { diff --git a/src/modules/gamepad/gamepad.c b/src/modules/gamepad/gamepad.c index ccba952b2..d14beb279 100644 --- a/src/modules/gamepad/gamepad.c +++ b/src/modules/gamepad/gamepad.c @@ -118,12 +118,6 @@ void ffGenerateGamepadJsonResult(FF_MAYBE_UNUSED FFGamepadOptions* options, yyjs return; } - if(!result.length) - { - yyjson_mut_obj_add_str(doc, module, "error", "No devices detected"); - return; - } - yyjson_mut_val* arr = yyjson_mut_obj_add_arr(doc, module, "result"); FF_LIST_FOR_EACH(FFGamepadDevice, device, result) { diff --git a/src/modules/localip/localip.c b/src/modules/localip/localip.c index f301c7e9d..6f02338ad 100644 --- a/src/modules/localip/localip.c +++ b/src/modules/localip/localip.c @@ -334,13 +334,7 @@ void ffGenerateLocalIpJsonResult(FF_MAYBE_UNUSED FFLocalIpOptions* options, yyjs if(error) { yyjson_mut_obj_add_str(doc, module, "error", error); - goto exit; - } - - if(results.length == 0) - { - yyjson_mut_obj_add_str(doc, module, "error", "Failed to detect any IPs"); - goto exit; + return; } yyjson_mut_val* arr = yyjson_mut_obj_add_arr(doc, module, "result"); @@ -354,7 +348,6 @@ void ffGenerateLocalIpJsonResult(FF_MAYBE_UNUSED FFLocalIpOptions* options, yyjs yyjson_mut_obj_add_strbuf(doc, obj, "name", &ip->name); } -exit: FF_LIST_FOR_EACH(FFLocalIpResult, ip, results) { ffStrbufDestroy(&ip->name); diff --git a/src/modules/poweradapter/poweradapter.c b/src/modules/poweradapter/poweradapter.c index 6fbf87d3e..e07e15a11 100644 --- a/src/modules/poweradapter/poweradapter.c +++ b/src/modules/poweradapter/poweradapter.c @@ -101,24 +101,28 @@ void ffGeneratePowerAdapterJsonResult(FF_MAYBE_UNUSED FFPowerAdapterOptions* opt if (error) { yyjson_mut_obj_add_str(doc, module, "error", error); + return; } - else if(results.length == 0) + + yyjson_mut_val* arr = yyjson_mut_obj_add_arr(doc, module, "result"); + FF_LIST_FOR_EACH(FFPowerAdapterResult, item, results) { - yyjson_mut_obj_add_str(doc, module, "error", "No power adapters found"); + yyjson_mut_val* obj = yyjson_mut_arr_add_obj(doc, arr); + yyjson_mut_obj_add_strbuf(doc, obj, "description", &item->description); + yyjson_mut_obj_add_strbuf(doc, obj, "manufacturer", &item->manufacturer); + yyjson_mut_obj_add_strbuf(doc, obj, "modelName", &item->modelName); + yyjson_mut_obj_add_strbuf(doc, obj, "name", &item->name); + yyjson_mut_obj_add_strbuf(doc, obj, "serial", &item->serial); + yyjson_mut_obj_add_int(doc, obj, "watts", item->watts); } - else + + FF_LIST_FOR_EACH(FFPowerAdapterResult, item, results) { - yyjson_mut_val* arr = yyjson_mut_obj_add_arr(doc, module, "result"); - FF_LIST_FOR_EACH(FFPowerAdapterResult, item, results) - { - yyjson_mut_val* obj = yyjson_mut_arr_add_obj(doc, arr); - yyjson_mut_obj_add_strbuf(doc, obj, "description", &item->description); - yyjson_mut_obj_add_strbuf(doc, obj, "manufacturer", &item->manufacturer); - yyjson_mut_obj_add_strbuf(doc, obj, "modelName", &item->modelName); - yyjson_mut_obj_add_strbuf(doc, obj, "name", &item->name); - yyjson_mut_obj_add_strbuf(doc, obj, "serial", &item->serial); - yyjson_mut_obj_add_int(doc, obj, "watts", item->watts); - } + ffStrbufDestroy(&item->manufacturer); + ffStrbufDestroy(&item->description); + ffStrbufDestroy(&item->modelName); + ffStrbufDestroy(&item->name); + ffStrbufDestroy(&item->serial); } } diff --git a/src/modules/sound/sound.c b/src/modules/sound/sound.c index 39b9c3ec3..0cea6b4e0 100644 --- a/src/modules/sound/sound.c +++ b/src/modules/sound/sound.c @@ -200,12 +200,6 @@ void ffGenerateSoundJsonResult(FF_MAYBE_UNUSED FFSoundOptions* options, yyjson_m return; } - if(result.length == 0) - { - yyjson_mut_obj_add_str(doc, module, "error", "No active sound devices found"); - return; - } - yyjson_mut_val* arr = yyjson_mut_obj_add_arr(doc, module, "result"); FF_LIST_FOR_EACH(FFSoundDevice, item, result) { diff --git a/src/modules/users/users.c b/src/modules/users/users.c index f2aa3e527..f3068ab26 100644 --- a/src/modules/users/users.c +++ b/src/modules/users/users.c @@ -146,7 +146,7 @@ void ffGenerateUsersJsonResult(FF_MAYBE_UNUSED FFUsersOptions* options, yyjson_m if(error) { yyjson_mut_obj_add_str(doc, module, "error", error); - goto exit; + return; } yyjson_mut_val* arr = yyjson_mut_obj_add_arr(doc, module, "result"); @@ -164,7 +164,6 @@ void ffGenerateUsersJsonResult(FF_MAYBE_UNUSED FFUsersOptions* options, yyjson_m yyjson_mut_obj_add_null(doc, obj, "loginTime"); } -exit: FF_LIST_FOR_EACH(FFUserResult, user, results) { ffStrbufDestroy(&user->clientIp); diff --git a/src/modules/wifi/wifi.c b/src/modules/wifi/wifi.c index 49367e101..0edc32d54 100644 --- a/src/modules/wifi/wifi.c +++ b/src/modules/wifi/wifi.c @@ -114,11 +114,6 @@ void ffGenerateWifiJsonResult(FF_MAYBE_UNUSED FFWifiOptions* options, yyjson_mut yyjson_mut_obj_add_str(doc, module, "error", error); return; } - if(!result.length) - { - yyjson_mut_obj_add_str(doc, module, "error", "No Wifi interfaces found"); - return; - } yyjson_mut_val* arr = yyjson_mut_obj_add_arr(doc, module, "result"); FF_LIST_FOR_EACH(FFWifiResult, wifi, result)