re.match instead of too many if

This commit is contained in:
cquest 2016-06-09 00:21:17 +02:00
parent aa6b65b8a1
commit f696a258e8

View file

@ -109,45 +109,30 @@ class EventResource(BaseEvent):
def relative_time(self, when, cur):
event_start = cur.mogrify("%s",(when,)).decode("utf-8")
event_stop = cur.mogrify("%s",(when,)).decode("utf-8")
event_stop = cur.mogrify("%s",(when,)).decode("utf-8")
if when == 'NOW':
event_start = "now()"
event_stop = "now()"
event_stop = "now()"
if when == 'TODAY':
event_start = "CURRENT_DATE"
event_stop = "CURRENT_DATE + INTERVAL '1 DAY'"
event_stop = "CURRENT_DATE + INTERVAL '1 DAY'"
if when == 'TOMORROW':
event_start = "CURRENT_DATE + INTERVAL '1 DAY'"
event_stop = "CURRENT_DATE + INTERVAL '2 DAY'"
event_stop = "CURRENT_DATE + INTERVAL '2 DAY'"
if when == 'YESTERDAY':
event_start = "CURRENT_DATE - INTERVAL '1 DAY'"
event_stop = "CURRENT_DATE"
if when == 'NEXTWEEK':
event_start = "CURRENT_DATE"
event_stop = "CURRENT_DATE + INTERVAL '7 DAY'"
if when == 'LASTWEEK':
event_start = "CURRENT_DATE - INTERVAL '7 DAY'"
event_stop = "CURRENT_DATE"
if when == 'NEXTHOUR':
when = 'NEXT1HOURS'
if re.search('NEXT[0-9]*HOURS',when):
event_start = "now()"
event_stop = "now() + INTERVAL '"+when[4:-6]+" HOUR'"
if when == 'LASTHOUR':
when = 'LAST1HOURS'
if re.search('LAST[0-9]*HOURS',when):
event_start = "now() - INTERVAL '"+when[4:-6]+" HOUR'"
event_stop = "now()"
if when == 'LASTMINUTE':
when = 'NEXT1MINUTES'
if re.search('LAST[0-9]*MINUTES',when):
event_start = "now() - INTERVAL '"+when[4:-7]+" MINUTE'"
event_stop = "now()"
if when == 'NEXTMINUTE':
when = "NEXT1MINUTES"
if re.search('NEXT[0-9]*MINUTES',when):
event_start = "now()"
event_stop = "now() + INTERVAL '"+when[4:-7]+" MINUTE'"
event_stop = "CURRENT_DATE"
m = re.match('(LAST|NEXT)(MONTH|WEEK|DAY|HOUR|MINUTE)',when)
if m is not None:
when = m.group(1)+m.group(2)+'S'
m = re.match('(LAST|NEXT)([0-9]*)(MONTH|WEEK|MINUTE|HOUR|DAY)S',when)
if m is not None:
if m.group(1) == 'LAST':
event_start = "now() - INTERVAL '%s %s'" % (m.group(2),m.group(3))
event_stop = "now()"
else:
event_start = "now()"
event_stop = "now() + INTERVAL '%s %s'" % (m.group(2),m.group(3))
return event_start, event_stop