From f65d15c08e7cb5f3297f8fb1c1417c205732bd19 Mon Sep 17 00:00:00 2001 From: Yoav Caspi Date: Sat, 7 Sep 2019 22:40:22 +0300 Subject: [PATCH 1/3] add regex flags to handle_message function. --- bot.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bot.py b/bot.py index e32b413..2477c91 100644 --- a/bot.py +++ b/bot.py @@ -101,22 +101,22 @@ HANDLERS: List[Tuple[Pattern[str], Callable[[Match[str]], Response]]] HANDLERS = [] -def handler(*prefixes: str) -> Callable[[Callback], Callback]: +def handler(*prefixes: str, flags: re.RegexFlag = re.U) -> Callable[[Callback], Callback]: def handler_decorator(func: Callback) -> Callback: for prefix in prefixes: - HANDLERS.append((re.compile(prefix + '\r\n$'), func)) + HANDLERS.append((re.compile(prefix + '\r\n$', flags=flags), func)) return func return handler_decorator -def handle_message(*message_prefixes: str) -> Callable[[Callback], Callback]: +def handle_message(*message_prefixes: str, flags: re.RegexFlag = re.U) -> Callable[[Callback], Callback]: return handler( *( f'^:(?P[^!]+).* ' f'PRIVMSG #(?P[^ ]+) ' f':(?P{message_prefix}.*)' for message_prefix in message_prefixes - ), + ), flags=flags, ) From 3b6d0e6d21dea68aff4c2db4b2c3c9223a29426e Mon Sep 17 00:00:00 2001 From: Yoav Caspi Date: Sat, 7 Sep 2019 22:41:22 +0300 Subject: [PATCH 2/3] add ignore case for gnu handle_message function --- bot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bot.py b/bot.py index 2477c91..85cbf00 100644 --- a/bot.py +++ b/bot.py @@ -297,7 +297,7 @@ def msg_ping(match: Match[str]) -> Response: return MessageResponse(match, f'PONG {esc(rest)}') -@handle_message(r'.*\b(nano|linux|windows)\b') +@handle_message(r'.*\b(nano|linux|windows)\b', flags=re.IGNORECASE) def msg_gnu_please(match: Match[str]) -> Response: msg, word = match[3], match[4] if f'GNU/{word}' in msg or f'gnu/{word}' in msg: From e1757d2cd50e3210835f908c28143fb29fe89ff5 Mon Sep 17 00:00:00 2001 From: Yoav Caspi Date: Sat, 19 Oct 2019 22:10:47 +0300 Subject: [PATCH 3/3] fixing some linting issues. --- bot.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/bot.py b/bot.py index b32a93a..53ba5c4 100644 --- a/bot.py +++ b/bot.py @@ -101,7 +101,10 @@ HANDLERS: List[Tuple[Pattern[str], Callable[[Match[str]], Response]]] HANDLERS = [] -def handler(*prefixes: str, flags: re.RegexFlag = re.U) -> Callable[[Callback], Callback]: +def handler( + *prefixes: str, + flags: re.RegexFlag = re.U, +) -> Callable[[Callback], Callback]: def handler_decorator(func: Callback) -> Callback: for prefix in prefixes: HANDLERS.append((re.compile(prefix + '\r\n$', flags=flags), func)) @@ -109,7 +112,10 @@ def handler(*prefixes: str, flags: re.RegexFlag = re.U) -> Callable[[Callback], return handler_decorator -def handle_message(*message_prefixes: str, flags: re.RegexFlag = re.U) -> Callable[[Callback], Callback]: +def handle_message( + *message_prefixes: str, + flags: re.RegexFlag = re.U, +) -> Callable[[Callback], Callback]: return handler( *( f'^:(?P[^!]+).* '