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)
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):
self._nickname = nickname
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)
from .sasl import SASLContext, SASLResult
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 .struct import Whois
from .params import ConnectionParams, SASLParams, STSPolicy, ResumePolicy
@ -312,7 +312,7 @@ class Server(IServer):
line = await self.wait_for(Response(
"PART",
[ParamFolded(name)],
source=Nickname(self.nickname_lower)
source=SELF
))
return
return MaybeAwait(_assure)