aboutsummaryrefslogtreecommitdiff
path: root/src/hooks
diff options
context:
space:
mode:
Diffstat (limited to 'src/hooks')
-rw-r--r--src/hooks/mod.rs2
-rw-r--r--src/hooks/nitter.rs29
2 files changed, 31 insertions, 0 deletions
diff --git a/src/hooks/mod.rs b/src/hooks/mod.rs
index d70af9c..39198c1 100644
--- a/src/hooks/mod.rs
+++ b/src/hooks/mod.rs
@@ -7,10 +7,12 @@ use base64::{alphabet, engine, Engine};
use irc::client::prelude::*;
mod intensify;
+mod nitter;
mod pet;
mod shifty_eyes;
pub use intensify::*;
+pub use nitter::*;
pub use pet::*;
pub use shifty_eyes::*;
diff --git a/src/hooks/nitter.rs b/src/hooks/nitter.rs
new file mode 100644
index 0000000..f29e885
--- /dev/null
+++ b/src/hooks/nitter.rs
@@ -0,0 +1,29 @@
+use std::sync::LazyLock;
+
+use anyhow::{Context, Result};
+use irc::client::prelude::*;
+use regex::Regex;
+
+static RE: LazyLock<Regex> =
+ LazyLock::new(|| Regex::new(r"https:\/\/(?:twitter|x)\.com\/(\S+?)(?:\s|$)").unwrap());
+
+const URL: &str = "https://xcancel.com/";
+
+pub fn nitter(bot: &crate::Bot, msg: Message) -> Result<()> {
+ if let Command::PRIVMSG(_, text) = msg.command.clone() {
+ let path = RE
+ .captures(&text)
+ .context("failed to capture twitter url path")?
+ .get(1)
+ .context("failed to get path capture group")?
+ .as_str();
+
+ bot.send_privmsg(
+ msg.response_target()
+ .context("failed to get response target")?,
+ format!("get cancled {URL}{path}").as_str(),
+ )?;
+ }
+
+ Ok(())
+}
='insertions'>+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 2021-06-13fix crash on message only containing whitespaceMax Audron-1/+4 2021-06-11Release version 1.2.01.2.0Max Audron-2/+2 2021-06-06make pet more compactR0flcopt3r/catinator-pet-commandMax Audron-5/+5 2021-06-05feat: adds pet command.R0flcopt3r-0/+90 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 2021-05-16add deployment stuffMax Audron-6/+27786 2021-05-15add container buildMax Audron-2/+35