aboutsummaryrefslogtreecommitdiff
path: root/src/hooks/wolfram_alpha.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/hooks/wolfram_alpha.rs')
-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");
ass='logsubject'>add cgit about-filter for adoc and mdMax Audron-12/+30 2025-11-15add git shell scriptsMax Audron-0/+45 2025-11-15add readmeMax Audron-1/+38 2025-11-14fixup vapor.systems cgitMax Audron-4/+6 2025-11-14move git hosting to plain git-shell and cgitMax Audron-34/+126 reject modernity, embrace linus 2025-10-26fix slskd stuffMax Audron-22/+67 2025-10-23uhMax Audron-9/+31 2025-10-22deploy soulseek and fix tlmp VPNMax Audron-47/+1744 2025-10-21add slskdMax Audron-1/+124 2025-10-10update nixpkgs-unstableMax Audron-3/+3 2025-10-10setup mailserverMax Audron-27/+213 2025-09-20replace dns bgp anouncementMax Audron-2/+2 2025-09-15update flaresolverrMax Audron-1/+1 2025-09-07add audron windows wg keyMax Audron-0/+8 2025-09-02switch out vultr dns ipv4 ipMax Audron-1/+5 2025-08-11disable homepage trackersMax Audron-3/+3 2025-08-11add mail serverMax Audron-1/+245 2025-08-05add prometheus alerting rulesMax Audron-38/+144 2025-08-01add homepage dashboardMax Audron-3/+284 2025-08-01disable not used gameserversMax Audron-1/+2 2025-08-01add minecraft prometheus exporterMax Audron-3/+67 2025-08-01more monitoring & scrape config shortcutsMax Audron-68/+63 2025-08-01update garage to 2.0Max Audron-6/+10 2025-07-31fix authentik-ldap port bindingsMax Audron-0/+5 2025-07-31update to nixos 25.05Max Audron-113/+65 2025-07-31add more monitoring exporters and scrapersMax Audron-17/+57 2025-07-30try to run authentik nativelyMax Audron-26/+303 2025-07-30more metricsMax Audron-1/+41 2025-07-30enable firewallsMax Audron-1/+39