feat: add feishu_send cli command

Signed-off-by: Asklv <boironic@gmail.com>
This commit is contained in:
Asklv
2026-03-03 21:16:00 +08:00
parent f076359900
commit a9fd606672

View File

@@ -80,6 +80,13 @@ static struct {
struct arg_end *end; struct arg_end *end;
} feishu_creds_args; } feishu_creds_args;
/* --- feishu_send command --- */
static struct {
struct arg_str *receive_id;
struct arg_str *text;
struct arg_end *end;
} feishu_send_args;
static int cmd_set_feishu_creds(int argc, char **argv) static int cmd_set_feishu_creds(int argc, char **argv)
{ {
int nerrors = arg_parse(argc, argv, (void **)&feishu_creds_args); int nerrors = arg_parse(argc, argv, (void **)&feishu_creds_args);
@@ -93,6 +100,20 @@ static int cmd_set_feishu_creds(int argc, char **argv)
return 0; return 0;
} }
static int cmd_feishu_send(int argc, char **argv)
{
int nerrors = arg_parse(argc, argv, (void **)&feishu_send_args);
if (nerrors != 0) {
arg_print_errors(stderr, feishu_send_args.end, argv[0]);
return 1;
}
esp_err_t err = feishu_send_message(feishu_send_args.receive_id->sval[0],
feishu_send_args.text->sval[0]);
printf("feishu_send status: %s\n", esp_err_to_name(err));
return (err == ESP_OK) ? 0 : 1;
}
/* --- set_api_key command --- */ /* --- set_api_key command --- */
static struct { static struct {
struct arg_str *key; struct arg_str *key;
@@ -652,6 +673,18 @@ esp_err_t serial_cli_init(void)
}; };
esp_console_cmd_register(&feishu_creds_cmd); esp_console_cmd_register(&feishu_creds_cmd);
/* feishu_send */
feishu_send_args.receive_id = arg_str1(NULL, NULL, "<receive_id>", "Feishu open_id/chat_id");
feishu_send_args.text = arg_str1(NULL, NULL, "<text>", "Text message (quote if contains spaces)");
feishu_send_args.end = arg_end(2);
esp_console_cmd_t feishu_send_cmd = {
.command = "feishu_send",
.help = "Send Feishu text: feishu_send <open_id|chat_id> \"hello\"",
.func = &cmd_feishu_send,
.argtable = &feishu_send_args,
};
esp_console_cmd_register(&feishu_send_cmd);
/* set_api_key */ /* set_api_key */
api_key_args.key = arg_str1(NULL, NULL, "<key>", "LLM API key"); api_key_args.key = arg_str1(NULL, NULL, "<key>", "LLM API key");
api_key_args.end = arg_end(1); api_key_args.end = arg_end(1);