aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Sadie Powell2025-08-31 16:13:30 +0100
committerGravatar Sadie Powell2025-08-31 16:13:30 +0100
commit2b583289dff31310b4a323218aadc7232e25d3fc (patch)
tree6095add8e58199a477278eb244d175deeb744a04
parentSwitch 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.conf4
-rw-r--r--src/modules/m_messageflood.cpp11
-rw-r--r--src/modules/m_repeat.cpp13
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)