From 601efce52ccce7a74d66696694568ebbd5af48c5 Mon Sep 17 00:00:00 2001 From: dgw Date: Tue, 30 Oct 2018 02:29:31 -0500 Subject: [PATCH] Add notice handling * Update idle time when the user sends a notice * Send incoming channel & private notices through the existing notification pipeline Does not add any special handling of notices vs. regular PRIVMSGs or ACTIONs; all three message types will appear the same. --- push.cpp | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/push.cpp b/push.cpp index ab6636e..fd20639 100755 --- a/push.cpp +++ b/push.cpp @@ -1271,6 +1271,25 @@ class CPushMod : public CModule return CONTINUE; } + /** + * Handle channel notices. + * + * @param nick Nick that sent the notice + * @param channel Channel the notice was sent to + * @param message Notice contents + */ + EModRet OnChanNotice(CNick& nick, CChan& channel, CString& message) + { + if (notify_channel(nick, channel, message)) + { + CString title = "Channel Notice"; + + send_message(message, title, channel.GetName(), nick); + } + + return CONTINUE; + } + /** * Handle a private message. * @@ -1307,6 +1326,24 @@ class CPushMod : public CModule return CONTINUE; } + /** + * Handle a private notice. + * + * @param nick Nick that sent the notice + * @param message Notice contents + */ + EModRet OnPrivNotice(CNick& nick, CString& message) + { + if (notify_pm(nick, message)) + { + CString title = "Private Notice"; + + send_message(message, title, nick.GetNick(), nick); + } + + return CONTINUE; + } + /** * Handle a message sent by the user. * @@ -1331,6 +1368,18 @@ class CPushMod : public CModule return CONTINUE; } + /** + * Handle a notice sent by the user. + * + * @param target Target channel or nick + * @param message Notice contents + */ + EModRet OnUserNotice(CString& target, CString& message) + { + last_reply_time[target] = last_active_time[target] = idle_time = time(NULL); + return CONTINUE; + } + /** * Handle the user joining a channel. *