diff options
| author | 2019-05-19 16:24:38 +0100 | |
|---|---|---|
| committer | 2019-05-19 16:24:38 +0100 | |
| commit | c607a0e67ccb997a46b27c128a318865ba4c9734 (patch) | |
| tree | d278ec49647775063d7fd2d63993c51c60e1ebef /src | |
| parent | Switch 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.py | 4 | ||||
| -rw-r--r-- | src/utils/irc/__init__.py | 5 |
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) |
