get rid of itertools, reply with the matched case

This commit is contained in:
Batuhan Taşkaya 2019-10-20 00:48:21 +03:00 committed by GitHub
parent a86757425c
commit a74f7cd8c1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 3 additions and 7 deletions

10
bot.py
View File

@ -1,7 +1,6 @@
import argparse import argparse
import asyncio import asyncio
import datetime import datetime
import itertools
import json import json
import random import random
import re import re
@ -321,12 +320,9 @@ def msg_ping(match: Match[str]) -> Response:
@handle_message(r'.*\b(nano|linux|windows|emacs)\b', flags=re.IGNORECASE) @handle_message(r'.*\b(nano|linux|windows|emacs)\b', flags=re.IGNORECASE)
def msg_gnu_please(match: Match[str]) -> Response: def msg_gnu_please(match: Match[str]) -> Response:
msg, word = match[3], match[4] msg, word = match[3], match[4]
cases = { query = re.match(fr'(?i)gnu(\/|\+){word}', msg)
f'{gnu}{sep}{word}' if query:
for gnu, sep in itertools.product(('gnu', 'GNU'), '/+') return MessageResponse(match, f'YES! {query.match(0)}')
}
if msg in cases:
return MessageResponse(match, f'YES! GNU/{esc(word)}')
else: else:
return MessageResponse(match, f"Um please, it's GNU/{esc(word)}!") return MessageResponse(match, f"Um please, it's GNU/{esc(word)}!")