diff options
| author | 2025-08-31 16:13:30 +0100 | |
|---|---|---|
| committer | 2025-08-31 16:13:30 +0100 | |
| commit | 2b583289dff31310b4a323218aadc7232e25d3fc (patch) | |
| tree | 6095add8e58199a477278eb244d175deeb744a04 | |
| parent | Switch messageflood to using a per-user flood reset time. (diff) | |
Add long duration template variables to messageflood and repeat.
| -rw-r--r-- | docs/conf/modules.example.conf | 4 | ||||
| -rw-r--r-- | src/modules/m_messageflood.cpp | 11 | ||||
| -rw-r--r-- | src/modules/m_repeat.cpp | 13 |
3 files changed, 15 insertions, 13 deletions
diff --git a/docs/conf/modules.example.conf b/docs/conf/modules.example.conf index 068ac4bdc..a3ae4ff22 100644 --- a/docs/conf/modules.example.conf +++ b/docs/conf/modules.example.conf @@ -1645,7 +1645,7 @@ # 1/5 of a NOTICE or PRIVMSG to avoid users being accidentally flooded # out of a channel by automatic client features such as typing # notifications. -#<messageflood message="Message flood detected (trigger is %messages% messages in %duration%)" +#<messageflood message="Message flood detected (trigger is %messages% messages in %duration.long%)" # extended="yes" # notice="1.0" # privmsg="1.0" @@ -2098,7 +2098,7 @@ # maxtime="0s" # size="512" # extended="yes" -# message="Repeat flood detected (trigger is %lines% messages in %duration%)"> +# message="Repeat flood detected (trigger is %lines% messages in %duration.long%)"> #<module name="repeat"> #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# diff --git a/src/modules/m_messageflood.cpp b/src/modules/m_messageflood.cpp index 993076f0d..049e5ab38 100644 --- a/src/modules/m_messageflood.cpp +++ b/src/modules/m_messageflood.cpp @@ -283,7 +283,7 @@ public: notice = tag->getNum<double>("notice", 1.0); privmsg = tag->getNum<double>("privmsg", 1.0); tagmsg = tag->getNum<double>("tagmsg", 0.2); - message = tag->getString("message", "Message flood detected (trigger is %messages% messages in %duration%)", 1); + message = tag->getString("message", "Message flood detected (trigger is %messages% messages in %duration.long%)", 1); mf.extended = tag->getBool("extended"); mf.SetSyntax(); } @@ -313,10 +313,11 @@ public: if (f->Add(user, weight)) { const std::string msg = Template::Replace(message, { - { "channel", dest->name }, - { "duration", Duration::ToString(f->period) }, - { "messages", ConvToStr(f->messages) }, - { "seconds", ConvToStr(f->period) }, + { "channel", dest->name }, + { "duration", Duration::ToString(f->period) }, + { "duration.long", Duration::ToLongString(f->period) }, + { "messages", ConvToStr(f->messages) }, + { "seconds", ConvToStr(f->period) }, }); switch (f->action) { diff --git a/src/modules/m_repeat.cpp b/src/modules/m_repeat.cpp index 3f5763096..2b0a723f4 100644 --- a/src/modules/m_repeat.cpp +++ b/src/modules/m_repeat.cpp @@ -443,7 +443,7 @@ public: void ReadConfig(ConfigStatus& status) override { const auto& tag = ServerInstance->Config->ConfValue("repeat"); - rm.ms.Message = tag->getString("message", tag->getString("kickmessage", "Repeat flood detected (trigger is %lines% messages in %duration%)"), 1); + rm.ms.Message = tag->getString("message", tag->getString("kickmessage", "Repeat flood detected (trigger is %lines% messages in %duration.long%)"), 1); rm.ms.Extended = tag->getBool("extended"); rm.ms.MaxBacklog = tag->getNum<unsigned long>("maxbacklog", 20); rm.ms.MaxDiff = tag->getNum<unsigned int>("maxdistance", 50, 0, 100); @@ -477,11 +477,12 @@ public: if (rm.MatchLine(memb, settings, details.text)) { const std::string message = Template::Replace(rm.ms.Message, { - { "channel", chan->name }, - { "diff", ConvToStr(settings->Diff) }, - { "duration", Duration::ToString(settings->Seconds) }, - { "lines", ConvToStr(settings->Lines) }, - { "seconds", ConvToStr(settings->Seconds) }, + { "channel", chan->name }, + { "diff", ConvToStr(settings->Diff) }, + { "duration", Duration::ToString(settings->Seconds) }, + { "duration.long", Duration::ToLongString(settings->Seconds) }, + { "lines", ConvToStr(settings->Lines) }, + { "seconds", ConvToStr(settings->Seconds) }, }); switch (settings->Action) |
