This repository was archived by the owner on Dec 4, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcommentparser.py
More file actions
41 lines (32 loc) · 1.33 KB
/
Copy pathcommentparser.py
File metadata and controls
41 lines (32 loc) · 1.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
__author__ = 'Almenon'
from re import compile, search
import logging
logging.basicConfig(level="DEBUG") # set level to INFO to get rid of debug messages
regex = compile(r"(?:\/u\/the_episode_bot[ ,:]*(\S+(?:\ \S+\b)*)[ ,]+)?" # bot's username followed by title (optional)
r"(s|e)[a-s]*\ *?(\d+)[\: ,_\[\]\-x]*" # season or episode followed by optional seperator
r"(?:s|e)[a-s]*\ *?(\d+)") # season/episode
# example match: /u/the_episode_bot pokemon S01E06
class ParseError(Exception):
pass
def parse(request):
logging.info("request: " + request)
# PARSE REQUEST
request = request.lower()
show_season_episode = search(regex,request)
if show_season_episode is None:
raise ParseError("request does not contain correct format")
if show_season_episode.group(1) is not None: show = show_season_episode.group(1)
else: show = None
if show_season_episode.group(2) is 'e': # format is episode season
episode = show_season_episode.group(3)
season = show_season_episode.group(4)
else: # format is season episode
season = show_season_episode.group(3)
episode = show_season_episode.group(4)
return show, season, episode
# testing
# try:
# answer = parse("1 :: Beers in S01E05")
# print(answer)
# except ParseError as e:
# print(e)