From 5fa1955b9932a7b2acb3718be7dae96876fd68d9 Mon Sep 17 00:00:00 2001 From: notplants Date: Tue, 16 Nov 2021 16:15:50 +0100 Subject: [PATCH] Working on about messages --- src/lib.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index cd1e24d..d762ff6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -343,16 +343,22 @@ impl Sbot { .output()?; if output.status.success() { // TODO: figure out how to take a stream of messages, and filter down to just ones with the value we are looking for + // this code is not real dont look at it let stdout = String::from_utf8(output.stdout)?; let ssb_message : SsbMessageValue = serde_json::from_str(&stdout).map_err(|err| { SbotCliError::GetAboutMsgs(format!("error deserializing ssb message while getting about message: {}", err)) })?; let value = ssb_message.content.get(key); match value { - Some(val) => Ok(val), - None => SbotCliError::GetAboutMsgs(format!("error parsing {} from about message: {}", key, err)) + Some(val) => { + let value_as_str = val.as_str(); + match value_as_str { + Some(v) => Ok(Some(v.to_string())), + None => Err(SbotCliError::GetAboutMsgs(format!("error parsing {} from about message", key))) + } + }, + None => Err(SbotCliError::GetAboutMsgs(format!("error parsing {} from about message", key))) } - Ok(value) } else { let stderr = std::str::from_utf8(&output.stderr)?; // TODO: create a more generic error variant