Skip to content

Commit 716373e

Browse files
authored
Merge pull request #11 from filips123/fix-lunch-schedule-url-format
Add support for new lunch schedule URL format
2 parents 3934845 + 32ed03c commit 716373e

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

API/gimvicurnik/updaters/eclassroom.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -402,12 +402,18 @@ def _store_lunch_schedule(self, name, url, span):
402402
date = self._get_daily_lunch_schedule_date(name, url)
403403
self._parse_daily_lunch_schedule(date, tables)
404404

405-
# Weekly lunch schedule format, used starting with February 2021
405+
# Weekly lunch schedule format, used in February 2021
406406
# Example: delitevKosila-15-19-feb2021.pdf
407407
elif re.search(r"\/delitevKosila-[1-9][0-9]+-[1-9][0-9]+-[a-z0-9]+(?:-popravek-[a-z0-9]+)?\.pdf$", url):
408408
date = self._get_weekly_lunch_schedule_date(name, url)
409409
self._parse_weekly_lunch_schedule(date, tables)
410410

411+
# Daily lunch schedule format, used starting with March 2021
412+
# Example: delitevKosila-mar9-2021-TOR-objava-PDF-0.pdf
413+
elif re.search(r"\/delitevKosila-[a-z0-9]+-[0-9]+-[A-Z]{3}-objava(?i:-PDF-[0-9])?\.pdf$", url):
414+
date = self._get_daily_lunch_schedule_date(name, url)
415+
self._parse_daily_lunch_schedule(date, tables)
416+
411417
# Unknown lunch schedule format
412418
else:
413419
raise LunchScheduleError("Unknown lunch schedule format: " + url.rsplit("/", 1)[-1])
@@ -444,9 +450,8 @@ def _store_lunch_schedule(self, name, url, span):
444450

445451
@staticmethod
446452
def _get_daily_lunch_schedule_date(name, url):
447-
return datetime.datetime.strptime(
448-
re.search(r"Razpored delitve kosila, (.+)", name, re.IGNORECASE).group(1), "%d. %m. %Y"
449-
).date()
453+
search = re.search(r"Razpored delitve kosila(?:-[a-z]+)?, ([0-9]+). ?([0-9]+). ?([0-9]+)", name, re.IGNORECASE)
454+
return datetime.date(year=int(search.group(3)), month=int(search.group(2)), day=int(search.group(1)))
450455

451456
@staticmethod
452457
def _get_weekly_lunch_schedule_date(name, url):
@@ -465,10 +470,13 @@ def _get_weekly_lunch_schedule_date(name, url):
465470
"dec": 12,
466471
}
467472

468-
date = re.search(
473+
search = re.search(
469474
r"\/delitevKosila-([1-9][0-9]+)-[0-9][1-9]+-([a-z]+)([1-9][0-9]+)(?:-popravek-[a-z0-9]+)?\.pdf$", url
470475
)
471-
return datetime.date(year=int(date.group(3)), month=month_to_number[date.group(2)], day=int(date.group(1)))
476+
477+
return datetime.date(
478+
year=int(search.group(3)), month=month_to_number[search.group(2)], day=int(search.group(1))
479+
)
472480

473481
def _parse_daily_lunch_schedule(self, date, tables):
474482
schedule = []

0 commit comments

Comments
 (0)