From 44d50cecf46e379ef42381d435c1db13cdea1e82 Mon Sep 17 00:00:00 2001 From: Jokler Date: Mon, 9 Oct 2017 23:55:47 +0200 Subject: Use regex to check for commands --- src/lib.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs index efd15fd..a5ce23b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,7 +1,11 @@ #![cfg_attr(feature="clippy", feature(plugin))] #![cfg_attr(feature="clippy", plugin(clippy))] +#[macro_use] +extern crate lazy_static; + extern crate irc; +extern crate regex; #[macro_use] mod plugin; @@ -9,6 +13,7 @@ mod plugins; use std::thread::spawn; use std::sync::{Arc, Mutex}; +use regex::Regex; use irc::client::prelude::*; use irc::proto::Command::PRIVMSG; use irc::error::Error as IrcError; @@ -98,7 +103,17 @@ fn get_command(nick: &str, message: &Message) -> Option { return None; } + lazy_static! { + static ref RE: Regex = Regex::new("^[:,]*?$").unwrap(); + } + if tokens[0].to_lowercase().starts_with(nick) { + tokens[0].drain(..nick.len()); + + if !RE.is_match(&tokens[0]) { + return None; + } + tokens.remove(0); Some(PluginCommand { -- cgit v1.2.3-70-g09d2