aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar jesopo2019-05-19 16:24:38 +0100
committerGravatar jesopo2019-05-19 16:24:38 +0100
commitc607a0e67ccb997a46b27c128a318865ba4c9734 (patch)
treed278ec49647775063d7fd2d63993c51c60e1ebef /src
parentSwitch to using Capability.copy() for sasl (diff)
signature
Implement utils.irc.hostmask_match for glob-like hostmask matching
Diffstat (limited to 'src')
-rw-r--r--src/IRCServer.py4
-rw-r--r--src/utils/irc/__init__.py5
2 files changed, 8 insertions, 1 deletions
diff --git a/src/IRCServer.py b/src/IRCServer.py
index c21f5110..6822296c 100644
--- a/src/IRCServer.py
+++ b/src/IRCServer.py
@@ -203,6 +203,10 @@ class Server(IRCObject.Object):
def irc_equals(self, s1: str, s2: str) -> bool:
return utils.irc.equals(self.case_mapping, s1, s2)
+ def hostmask_match(self, hostmask: str, pattern: str) -> bool:
+ return utils.irc.hostmask_match(self.irc_lower(hostmask),
+ self.irc_lower(pattern))
+
def parse_data(self, line: str):
if not line:
return
diff --git a/src/utils/irc/__init__.py b/src/utils/irc/__init__.py
index 39ee0058..b9ebdf58 100644
--- a/src/utils/irc/__init__.py
+++ b/src/utils/irc/__init__.py
@@ -1,4 +1,4 @@
-import json, string, re, typing
+import fnmatch, json, string, re, typing
from src import IRCLine, utils
from . import protocol
@@ -303,3 +303,6 @@ class MessageTag(object):
def get_value(self, tags: typing.Dict[str, str]) -> typing.Optional[str]:
key = list(set(tags.keys())&self._names)
return tags[key[0]] if key else None
+
+def hostmask_match(hostmask: str, pattern: str) -> bool:
+ return fnmatch.fnmatch(hostmask, pattern)