From e0f896e23e90210c1605106cb5d8813826c38e3c Mon Sep 17 00:00:00 2001 From: delta Date: Mon, 11 Jul 2022 08:59:47 +0200 Subject: [PATCH] added support for DIRCORD_POLARIAN_MODE compile time env var --- README.md | 2 ++ src/discord_irc.rs | 21 +++++++++++++-------- src/irc_discord.rs | 6 +++++- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 661cbfd..93c2066 100644 --- a/README.md +++ b/README.md @@ -12,3 +12,5 @@ TODO: - [x] handle multiple pings - [x] multiple channels - [x] IRC and Discord formatting + +For extra fun set the DIRCORD_POLARIAN_MODE environmental variable to any value ;) diff --git a/src/discord_irc.rs b/src/discord_irc.rs index 055e714..e3d5e4f 100644 --- a/src/discord_irc.rs +++ b/src/discord_irc.rs @@ -60,14 +60,19 @@ impl<'a> StrChunks<'a> { } async fn create_prefix(msg: &Message, is_reply: bool, http: impl CacheHttp) -> (String, usize) { - // let nick = match msg.member(http).await { - // Ok(Member { - // nick: Some(nick), .. - // }) => Cow::Owned(nick), - // _ => Cow::Borrowed(&msg.author.name), - // }; - let nick = "polarbear"; - + + let mut nick = match msg.member(http).await { + Ok(Member { + nick: Some(nick), .. + }) => Cow::Owned(nick), + _ => Cow::Borrowed(&msg.author.name), + }; + + if option_env!("DIRCORD_POLARIAN_MODE").is_some() { + nick = Cow::Owned("polarbear".to_string()); + } + + let mut chars = nick.char_indices(); let first_char = chars.next().unwrap().1; let second_char_offset = chars.next().unwrap().0; diff --git a/src/irc_discord.rs b/src/irc_discord.rs index 92cb19c..aa04310 100644 --- a/src/irc_discord.rs +++ b/src/irc_discord.rs @@ -68,7 +68,11 @@ pub async fn irc_loop( continue; }; - let nickname = "polarbear"; + let mut nickname = unwrap_or_continue!(orig_message.source_nickname()); + + if option_env!("DIRCORD_POLARIAN_MODE").is_some() { + nickname = "polarbear"; + } if let Command::PRIVMSG(ref channel, ref message) = orig_message.command { let channel_id = ChannelId::from(*unwrap_or_continue!(mapping.get(channel)));