From 22b549708d22208d9444f34cd8a7a34db91412fb Mon Sep 17 00:00:00 2001 From: jesopo Date: Mon, 27 Apr 2020 23:26:59 +0100 Subject: [PATCH] add matching Hostmask type for Self, Nickname->Nick --- ircrobots/matching/params.py | 9 ++++++++- ircrobots/server.py | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ircrobots/matching/params.py b/ircrobots/matching/params.py index 8326c18..9cac856 100644 --- a/ircrobots/matching/params.py +++ b/ircrobots/matching/params.py @@ -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 diff --git a/ircrobots/server.py b/ircrobots/server.py index 7e08f9d..36d4bd8 100644 --- a/ircrobots/server.py +++ b/ircrobots/server.py @@ -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)