From b9267ed43fe00d9626b78506a120da7eeca3838b Mon Sep 17 00:00:00 2001 From: Colin McKechney Date: Tue, 26 Mar 2024 19:30:18 -0700 Subject: [PATCH] Added ttb module --- Cargo.toml | 2 +- src/modules/ttb.rs | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 src/modules/ttb.rs diff --git a/Cargo.toml b/Cargo.toml index 7f2e22e..dbff4ea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,7 @@ edition = "2021" [dependencies] irc = {version = "1.0.0", default-features = false, features = ["tls-rust", "ctcp", "channel-lists","toml_config"]} -chrono = {version = "*"} +chrono = "*" futures = {version = "*"} tokio = {version = "*", features = ["full"]} regex = "1" diff --git a/src/modules/ttb.rs b/src/modules/ttb.rs new file mode 100644 index 0000000..487c540 --- /dev/null +++ b/src/modules/ttb.rs @@ -0,0 +1,25 @@ +use irc::proto::Message; +use std::collections::VecDeque; +use chrono::{prelude::*, TimeDelta}; + +pub const PATTERN: &str = "^\\$ttb\\s*$"; + + +pub fn time_to_baby(_: regex::Captures, message: &Message, _: &VecDeque) -> Option<(String, String)> { + let local_time: DateTime = Local::now(); + + let birth_time: DateTime = Local.with_ymd_and_hms(2024, 10, 17, 00, 00, 00).unwrap(); + + let difference = birth_time - local_time; + + let completed_message; + if difference > TimeDelta::zero() { + completed_message = format!("{} {} until pnutz's baby is due!", difference.num_days(), if difference.num_days() > 1 { "days"} else {"day"} ); + } + else { + completed_message = "They're past due!".to_string(); + } + + + Some((message.response_target().unwrap_or("#lug").to_string(), completed_message)) +}