diff options
Diffstat (limited to 'backlog.cpp')
-rw-r--r-- | backlog.cpp | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/backlog.cpp b/backlog.cpp index 900cd6b..2c6426f 100644 --- a/backlog.cpp +++ b/backlog.cpp @@ -183,7 +183,13 @@ void CBacklogMod::OnModCommand(const CString& sCommand) { m_pNetwork->PutUser(":***!znc@znc.in PRIVMSG " + Channel + " :No log files found for window " + Channel + " in " + DirPath + "/", GetClient()); return; } else { - m_pNetwork->PutUser(":***!znc@znc.in PRIVMSG " + Channel + " :Backlog playback...", GetClient()); + //RFC prefixes: # ! & + + if (Channel.StartsWith("#") || Channel.StartsWith("&") || + Channel.StartsWith("!") || Channel.StartsWith("+")) { //Normal channel + m_pNetwork->PutUser(":***!znc@znc.in PRIVMSG " + Channel + " :Backlog playback...", GetClient()); + } else { + m_pNetwork->PutUser(":" + Channel + "!znc@znc.in PRIVMSG " + Channel + " :<***> Backlog playback...", GetClient()); + } } // now actually print @@ -212,13 +218,26 @@ void CBacklogMod::OnModCommand(const CString& sCommand) { MessageType = "NOTICE "; } - m_pNetwork->PutUser(":" + Nick + "!znc@znc.in " + MessageType + Channel + " :" + Line.substr(0, FirstWS) + Line.substr(FirstWS + NickLen + 1, Line.npos), GetClient()); + //RFC prefixes: # ! & + + if (Channel.StartsWith("#") || Channel.StartsWith("&") || + Channel.StartsWith("!") || Channel.StartsWith("+")) { //Normal channel + m_pNetwork->PutUser(":" + Nick + "!znc@znc.in " + MessageType + Channel + " :" + Line.substr(0, FirstWS) + Line.substr(FirstWS + NickLen + 1, Line.npos), GetClient()); + } else { //Privmsg + m_pNetwork->PutUser(":" + Channel + "!znc@znc.in " + MessageType + Channel + " :" + Line.substr(0, FirstWS) + " <" + Nick + ">" + Line.substr(FirstWS + NickLen + 1, Line.npos), GetClient()); + } + + } catch (int e) { PutModule("Malformed log line! " + Line); } } - m_pNetwork->PutUser(":***!znc@znc.in PRIVMSG " + Channel + " :" + "Playback Complete.", GetClient()); + if (Channel.StartsWith("#") || Channel.StartsWith("&") || + Channel.StartsWith("!") || Channel.StartsWith("+")) { //Normal channel + m_pNetwork->PutUser(":***!znc@znc.in PRIVMSG " + Channel + " :" + "Playback Complete.", GetClient()); + } else { + m_pNetwork->PutUser(":" + Channel + "!znc@znc.in PRIVMSG " + Channel + " :<***> " + "Playback Complete.", GetClient()); + } } template<> void TModInfo<CBacklogMod>(CModInfo& Info) { |