aboutsummaryrefslogtreecommitdiff
path: root/Utils.py
diff options
context:
space:
mode:
authorGravatar jesopo2018-09-12 10:18:12 +0100
committerGravatar jesopo2018-09-12 10:18:12 +0100
commit08aa72de82afe82c1c333b830388451b3bcc02d8 (patch)
tree9e6fcf40b5d3ac04019db968b4bd99b3f1636583 /Utils.py
parentDon't return 0 as "time until next ping" when we've already sent a ping. return (diff)
Support 'strict-rfc1459' case mapping
Diffstat (limited to 'Utils.py')
-rw-r--r--Utils.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/Utils.py b/Utils.py
index 97e15b59..12e9223b 100644
--- a/Utils.py
+++ b/Utils.py
@@ -8,6 +8,8 @@ REGEX_HTTP = re.compile("https?://", re.I)
RFC1459_UPPER = r'\[]~'
RFC1459_LOWER = r'|{}^'
+STRICT_RFC1459_UPPER = r'\[]'
+STRICT_RFC1459_LOWER = r'|{}'
def remove_colon(s):
if s.startswith(":"):
@@ -21,11 +23,17 @@ def _rfc1459_lower(s):
for upper, lower in zip(RFC1459_UPPER, RFC1459_LOWER):
s = s.replace(upper, lower)
return s.lower()
+def _strict_rfc1459_lower(s):
+ for upper, lower in zip(STRICT_RFC1459_UPPER, STRICT_RFC1459_LOWER):
+ s = s.replace(upper, lower)
+ return s.lower()
def irc_lower(server, s):
if server.case_mapping == "ascii":
return s.lower()
elif server.case_mapping == "rfc1459":
return _rfc1459_lower(s)
+ elif server.case_mapping == "strict-rfc1459":
+ return _strict_rfc1459_lower(s)
else:
raise ValueError("unknown casemapping '%s'" % server.case_mapping)