From 44b2c505b601828013439e974b410d8ee4a489d4 Mon Sep 17 00:00:00 2001 From: Lorenz Leitner Date: Thu, 14 Oct 2021 19:36:28 +0200 Subject: Remove whitespace in result text --- src/hooks/wolfram_alpha.rs | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'src') 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::>() + .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::>() .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"); -- cgit v1.2.3 lue='author'>author
Commit message (Expand)AuthorLines
2024-10-25update nixpkgs-masterMax Audron-3/+3
2024-10-22update factorioMax Audron-3/+27
2024-10-18deploy satisfactory serverMax Audron-1/+22
2024-10-18switch to protonvpn for illegal activitiesMax Audron-50/+240
2024-08-12move catinator secrets to be managed by secrets moduleMax Audron-1/+8
2024-08-12add pastor deploymentMax Audron-1/+296
2024-08-12remove psql ensurePermissionsMax Audron-5/+5
2024-08-12disable k8sMax Audron-5/+0
2024-08-12add catinatorMax Audron-7/+299
2024-08-12update flaresolverrMax Audron-1/+1
2024-08-12update powerdns configMax Audron-5/+5
2024-08-12update garage config to 1.0Max Audron-2/+3
2024-08-12update to nixos 24.05Max Audron-27/+21
2024-07-03add acc serverMax Audron-2/+23
2024-03-29add rtmp and laplaceMax Audron-1/+200
2024-03-29add hydra secretsMax Audron-0/+0
2024-03-29add hydra secretsMax Audron-5/+35
2024-03-19extend postgresql hpa for podman ipsMax Audron-1/+1
2024-03-02update authentikMax Audron-8/+6
2024-03-02setup gitea oidcMax Audron-5/+18
2024-02-28add giteaMax Audron-2/+39
2024-02-28remove gitlab moduleMax Audron-25/+0
2024-02-26update d3fus phone wg pubkeyMarcin Maselko-1/+1
2024-02-26added d3fus nass to wg configMarcin Maselko-0/+9
2024-02-21set minecraft memoryMax Audron-0/+1
2024-02-21add minecraft server and move palworld to games moduleMax Audron-3/+56
2024-02-21set network manually for ns serversMax Audron-0/+51
2024-02-20update nixpkgs-unstableMax Audron-3/+3
2024-02-19update d3fus fritzbox wg portMarcin Maselko-1/+1
2024-02-19add xonotic serverMax Audron-1/+10