3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-11-01 01:09:22 +01:00

classes: drop use of ircmatch (#636)

This commit is contained in:
James Lu 2019-06-21 12:25:34 -07:00
parent b7d93fe86a
commit 9f31a0a587

View File

@ -22,11 +22,6 @@ import collections
import collections.abc import collections.abc
import textwrap import textwrap
try:
import ircmatch
except ImportError:
raise ImportError("PyLink requires ircmatch to function; please install it and try again.")
from . import world, utils, structures, conf, __version__, selectdriver from . import world, utils, structures, conf, __version__, selectdriver
from .log import * from .log import *
from .utils import ProtocolError # Compatibility with PyLink 1.x from .utils import ProtocolError # Compatibility with PyLink 1.x
@ -1365,11 +1360,6 @@ class PyLinkNetworkCoreWithUtils(PyLinkNetworkCore):
and the 'ip' option is enabled, the host portion of the glob is also matched as a CIDR and the 'ip' option is enabled, the host portion of the glob is also matched as a CIDR
range. range.
""" """
# Get the corresponding casemapping value used by ircmatch.
if self.casemapping == 'rfc1459':
casemapping = 0
else:
casemapping = 1
# Try to convert target into a UID. If this fails, it's probably a hostname. # Try to convert target into a UID. If this fails, it's probably a hostname.
target = self.nick_to_uid(target) or target target = self.nick_to_uid(target) or target
@ -1444,9 +1434,9 @@ class PyLinkNetworkCoreWithUtils(PyLinkNetworkCore):
else: # We were given a host, use that. else: # We were given a host, use that.
hosts = [target] hosts = [target]
# Iterate over the hosts to match using ircmatch. # Iterate over the hosts to match, since we may have multiple (check IP/real host)
for host in hosts: for host in hosts:
if ircmatch.match(casemapping, glob, host): if self.match_text(glob, host):
return True return True
return False return False
@ -1461,13 +1451,7 @@ class PyLinkNetworkCoreWithUtils(PyLinkNetworkCore):
Returns whether the given glob matches the given text under the network's Returns whether the given glob matches the given text under the network's
current case mapping. current case mapping.
""" """
# Get the corresponding casemapping value used by ircmatch. return utils.match_text(glob, text, filterfunc=self.to_lower)
if self.casemapping == 'rfc1459':
casemapping = 0
else:
casemapping = 1
return ircmatch.match(casemapping, glob, text)
def match_all(self, banmask, channel=None): def match_all(self, banmask, channel=None):
""" """