aboutsummaryrefslogtreecommitdiff
path: root/src/core_modules/throttle.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/core_modules/throttle.py')
-rw-r--r--src/core_modules/throttle.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/core_modules/throttle.py b/src/core_modules/throttle.py
new file mode 100644
index 00000000..e204cc34
--- /dev/null
+++ b/src/core_modules/throttle.py
@@ -0,0 +1,17 @@
+from src import ModuleManager, utils
+
+def _parse(value):
+ lines, _, seconds = value.partition(":")
+ if lines.isdigit() and seconds.isdigit():
+ return [int(lines), int(seconds)]
+ return None
+
+@utils.export("serverset", utils.FunctionSetting(_parse, "throttle",
+ "Configure lines:seconds throttle for the current server", example="4:2"))
+class Module(ModuleManager.BaseModule):
+ @utils.hook("received.001")
+ def connect(self, event):
+ throttle = event["server"].get_setting("throttle", None)
+ if throttle:
+ lines, seconds = throttle
+ event["server"].socket.set_throttle(lines, seconds)