diff options
| author | Max Audron <audron@cocaine.farm> | 2021-05-15 13:58:01 +0200 |
|---|---|---|
| committer | Max Audron <audron@cocaine.farm> | 2021-05-15 13:58:01 +0200 |
| commit | d0bff910b0b038ee85bc285bef7a63870a3474ab (patch) | |
| tree | b840d0b932c080fa5d5053b6bf66a91f94a80481 /src/hooks/mod.rs | |
init
Diffstat (limited to 'src/hooks/mod.rs')
| -rw-r--r-- | src/hooks/mod.rs | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/hooks/mod.rs b/src/hooks/mod.rs new file mode 100644 index 0000000..ba4a98d --- /dev/null +++ b/src/hooks/mod.rs @@ -0,0 +1,39 @@ +use anyhow::Result; +use irc::client::prelude::*; + +pub mod sed; +pub mod shifty_eyes; + +pub use sed::*; +pub use shifty_eyes::shifty_eyes; + +pub fn sasl(bot: &crate::Bot, msg: Message) -> Result<()> { + match msg.command { + Command::AUTHENTICATE(text) => { + use sasl::client::mechanisms::Plain; + use sasl::client::Mechanism; + use sasl::common::Credentials; + + if text == "+" { + let creds = Credentials::default() + .with_username(bot.config.clone().user.username) + .with_password(bot.config.clone().user.password); + + let mut mechanism = Plain::from_credentials(creds).unwrap(); + + let initial_data = mechanism.initial(); + + bot.irc_client.send_sasl(base64::encode(initial_data))?; + bot.irc_client.send(Command::CAP( + None, + irc_proto::command::CapSubCommand::END, + None, + None, + ))?; + } + } + _ => (), + } + + Ok(()) +} |
