diff options
| author | Jokler <jokler.contact@gmail.com> | 2017-10-09 23:55:47 +0200 |
|---|---|---|
| committer | Jokler <jokler.contact@gmail.com> | 2017-10-11 15:41:32 +0200 |
| commit | 44d50cecf46e379ef42381d435c1db13cdea1e82 (patch) | |
| tree | 22b7436c254dd60f2ebebeb0e4293e9c780cb516 | |
| parent | ea3cd019142d2276ba9a6a9a3945143b18789873 (diff) | |
| download | frippy-44d50cecf46e379ef42381d435c1db13cdea1e82.tar.gz frippy-44d50cecf46e379ef42381d435c1db13cdea1e82.zip | |
Use regex to check for commands
| -rw-r--r-- | Cargo.lock | 1 | ||||
| -rw-r--r-- | Cargo.toml | 1 | ||||
| -rw-r--r-- | src/lib.rs | 15 |
3 files changed, 17 insertions, 0 deletions
@@ -4,6 +4,7 @@ version = "0.1.0" dependencies = [ "clippy 0.0.165 (registry+https://github.com/rust-lang/crates.io-index)", "irc 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", "regex 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "reqwest 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.15 (registry+https://github.com/rust-lang/crates.io-index)", @@ -22,6 +22,7 @@ doc = false irc = "0.12.5" reqwest = "0.8.0" regex = "0.2.2" +lazy_static = "0.2.9" serde = "1.0.15" serde_json = "1.0.3" @@ -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<PluginCommand> { 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 { |
