aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar jesopo2019-07-23 17:46:22 +0100
committerGravatar jesopo2019-07-23 17:46:22 +0100
commitb6844303cb960d53d2b5623899cac793b903ec6c (patch)
treed6bc4efeaef84c3d77c502ea5a3dcbabfae24201
parentwider watch for failed translation (diff)
signature
add set_throttle(lines, seconds) function to tweak throttle per-server
-rw-r--r--src/IRCSocket.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/IRCSocket.py b/src/IRCSocket.py
index fff93e8c..f5fe1446 100644
--- a/src/IRCSocket.py
+++ b/src/IRCSocket.py
@@ -22,6 +22,9 @@ class Socket(IRCObject.Object):
self._cert = cert
self._key = key
+ self._throttle_lines = THROTTLE_LINES
+ self._throttle_seconds = THROTTLE_SECONDS
+
self.connected = False
self._write_buffer = b""
@@ -181,14 +184,14 @@ class Socket(IRCObject.Object):
popped = 0
for i, recent_send in enumerate(self._recent_sends[:]):
time_since = now-recent_send
- if time_since >= THROTTLE_SECONDS:
+ if time_since >= self._throttle_seconds:
self._recent_sends.pop(i-popped)
popped += 1
def throttle_space(self) -> int:
if not self._write_throttling:
return UNTHROTTLED_MAX_LINES
- return max(0, THROTTLE_LINES-len(self._recent_sends))
+ return max(0, self._throttle_lines-len(self._recent_sends))
def send_throttle_timeout(self) -> float:
if len(self._write_buffer) or not self._write_throttling:
@@ -198,9 +201,13 @@ class Socket(IRCObject.Object):
if self.throttle_space() > 0:
return 0
- time_left = self._recent_sends[0]+THROTTLE_SECONDS
+ time_left = self._recent_sends[0]+self._throttle_seconds
time_left = time_left-time.monotonic()
return time_left
def enable_write_throttle(self):
self._throttle_when_empty = True
+
+ def set_throttle(self, lines: int, seconds: int):
+ self._throttle_lines = lines
+ self._throttle_seconds = seconds