Nicer pep number matching and extraction

Covers the following cases:
!pep 1234 test
!pep 1234test
!pep1234 test
!pep1245test
!pep test
!pep
This commit is contained in:
int3l 2019-11-24 01:17:47 +02:00 committed by GitHub
parent c89740f1f2
commit b8e368b94e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 11 deletions

16
bot.py
View File

@ -295,18 +295,12 @@ def cmd_uptime(match: Match[str]) -> Response:
return UptimeResponse()
@handle_message('!pep')
@handle_message('!pep[ ]?(?P<pep_num>\d{1,4})')
def cmd_pep(match: Match[str]) -> Response:
*_, msg = match.groups()
*_, rest = msg.partition(' ')
try:
pep = str(int(rest)).zfill(4)
except ValueError:
return MessageResponse(match, 'Please make sure you gave me a number!')
else:
return MessageResponse(
match, f'https://www.python.org/dev/peps/pep-{pep}/',
)
*_, number = match.groups()
return MessageResponse(
match, f'https://www.python.org/dev/peps/pep-{number.zfill(4)}/',
)
COMMAND_RE = re.compile(r'!\w+')