add matching Hostmask type for Self, Nickname->Nick

This commit is contained in:
jesopo 2020-04-27 23:26:59 +01:00
parent ab66df4d43
commit 22b549708d
2 changed files with 10 additions and 3 deletions

View file

@ -56,7 +56,14 @@ class Regex(IMatchResponseParam):
self._pattern = re_compile(self._value) self._pattern = re_compile(self._value)
return bool(self._pattern.search(arg)) return bool(self._pattern.search(arg))
class Nickname(IMatchResponseHostmask): class Self(IMatchResponseHostmask):
def __repr__(self) -> str:
return "Self()"
def match(self, server: IServer, hostmask: Hostmask):
return server.casefold(hostmask.nickname) == server.nickname_lower
SELF = Self()
class Nick(IMatchResponseHostmask):
def __init__(self, nickname: str): def __init__(self, nickname: str):
self._nickname = nickname self._nickname = nickname
self._folded: Optional[str] = None self._folded: Optional[str] = None

View file

@ -16,7 +16,7 @@ from .ircv3 import (CAPContext, sts_transmute, CAP_ECHO, CAP_SASL,
CAP_LABEL, LABEL_TAG, resume_transmute) CAP_LABEL, LABEL_TAG, resume_transmute)
from .sasl import SASLContext, SASLResult from .sasl import SASLContext, SASLResult
from .join_info import WHOContext from .join_info import WHOContext
from .matching import ResponseOr, Responses, Response, ANY, Folded, Nickname from .matching import ResponseOr, Responses, Response, ANY, SELF, Folded
from .asyncs import MaybeAwait, WaitFor from .asyncs import MaybeAwait, WaitFor
from .struct import Whois from .struct import Whois
from .params import ConnectionParams, SASLParams, STSPolicy, ResumePolicy from .params import ConnectionParams, SASLParams, STSPolicy, ResumePolicy
@ -312,7 +312,7 @@ class Server(IServer):
line = await self.wait_for(Response( line = await self.wait_for(Response(
"PART", "PART",
[ParamFolded(name)], [ParamFolded(name)],
source=Nickname(self.nickname_lower) source=SELF
)) ))
return return
return MaybeAwait(_assure) return MaybeAwait(_assure)