aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLorenz Leitner <lrnz.ltnr@gmail.com>2021-10-14 19:36:28 +0200
committerLorenz Leitner <lrnz.ltnr@gmail.com>2021-10-14 19:36:28 +0200
commit44b2c505b601828013439e974b410d8ee4a489d4 (patch)
tree2e58e83f0fadecdaaef7480334ce824fa414ad8f /src
parentFix URL shortening of some WA inputs (diff)
Remove whitespace in result text
Diffstat (limited to '')
-rw-r--r--src/hooks/wolfram_alpha.rs22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/hooks/wolfram_alpha.rs b/src/hooks/wolfram_alpha.rs
index 5584935..1e7b6d8 100644
--- a/src/hooks/wolfram_alpha.rs
+++ b/src/hooks/wolfram_alpha.rs
@@ -32,6 +32,16 @@ struct SubPod {
plaintext: String,
}
+fn clean_result_text(text: &str) -> String {
+ text
+ // Remove newlines
+ .replace("\n", "; ")
+ // Remove multiple whitespace
+ .split_whitespace()
+ .collect::<Vec<&str>>()
+ .join(" ")
+}
+
/// Reduces all 'pod' plaintexts to a single string.
/// Same as gonzobot does it.
fn to_single_string(wa_res: WaResponse) -> String {
@@ -44,7 +54,7 @@ fn to_single_string(wa_res: WaResponse) -> String {
let subpod_texts = pod
.subpods
.iter()
- .map(|subpod| subpod.plaintext.clone())
+ .map(|subpod| clean_result_text(&subpod.plaintext))
.collect::<Vec<String>>()
.join(", ");
@@ -143,6 +153,8 @@ pub async fn wa(bot: &crate::Bot, msg: Message) -> Result<()> {
#[cfg(test)]
mod tests {
+ use crate::hooks::wolfram_alpha::clean_result_text;
+
use super::{get_input_query, get_wa_user_short_url, wa_query};
use anyhow::{Error, Result};
use mockito::{self, Matcher};
@@ -221,6 +233,14 @@ mod tests {
Ok(())
}
+ #[test]
+ fn test_clean_result_text() {
+ assert_eq!(
+ clean_result_text("Newlines\nand multiple\n\n whitespace is removed."),
+ "Newlines; and multiple; ; whitespace is removed.",
+ )
+ }
+
#[tokio::test]
async fn test_query_result_parsing() -> Result<(), Error> {
let body = include_str!("../../tests/resources/wolfram_alpha_api_response.json");
ogheader'>2021-09-07add stuff to ignore for git and containersMax Audron-0/+3 2021-09-07add cargo chef to container build to utilize cachingMax Audron-8/+12 2021-09-07handle CTCP ACTION in sed moduleMax Audron-2/+16 2021-09-07put benchmark behind feature flag we can compile using stable rustMax Audron-7/+17 2021-09-07handle error cases in sed moduleMax Audron-8/+15 2021-06-29add rmr to channels1.3.2Max Audron-1/+1 2021-06-28>.>: add . as eyeMax Audron-1/+1 2021-06-28add lmr to channels1.3.1Max Audron-1/+1 2021-06-23rewrite sed regex to work cross channelMax Audron-115/+141 2021-06-23add required metadata for publishing to macros crateMax Audron-5/+12 2021-06-23add ability to use path and dotted syntax for functionsMax Audron-8/+39 2021-06-21publish macros subcrateMax Audron-20/+20 2021-06-13release version 1.2.1Max Audron-2/+2 * fix crash on empty message 2021-06-13fix crash on message only containing whitespaceMax Audron-1/+4 2021-06-11Release version 1.2.01.2.0Max Audron-2/+2 * add pet command 2021-06-06make pet more compactR0flcopt3r/catinator-pet-commandMax Audron-5/+5 2021-06-05feat: adds pet command.R0flcopt3r-0/+90 When petting the cat it will reply with some random action. 2021-06-05feat: send actionR0flcopt3r-1/+9 2021-06-05release version 1.1.0Max Audron-2/+2 2021-06-05document proc macrosMax Audron-4/+97 2021-06-05add intensifyMax Audron-3/+27 2021-06-05add privmsg macroMax Audron-2/+40 2021-06-05fix jb remote urlsMax Audron-4/+4 2021-06-05remove egress gateway configMax Audron-10/+0 2021-06-05update tanka dependenciesMax Audron-8/+8 2021-06-05fix init container nameMax Audron-1/+1 2021-06-05fix tanka dependency pathMax Audron-8/+8 2021-06-05switch to https url for tanka util libMax Audron-2/+2 2021-06-05bump version to 1.0.2Max Audron-2/+2 2021-06-05add tanka ci configurationMax Audron-1/+1 2021-06-05ready tanka deploy for CIMax Audron-32/+69 2021-06-05remove tanka vendoringMax Audron-27651/+0 2021-05-26Release 1.0.1Max Audron-3/+3 2021-05-26fix log breaking once buffer fullMax Audron-2/+33 the log_msg function was poping the newest message and replacing it with the newest message, it should be poping the oldest messages. 2021-05-16add deployment stuffMax Audron-6/+27786 2021-05-15add container buildMax Audron-2/+35