aboutsummaryrefslogtreecommitdiff
path: root/management/commands
diff options
context:
space:
mode:
authorAlban Gruin2017-09-07 19:54:03 +0200
committerAlban Gruin2017-09-07 19:54:03 +0200
commitdc272aad09f15273a930345f33943580b2a8a1f3 (patch)
tree02542476548d62a62565dc45b18d9480f458c0af /management/commands
parent1561cb829a48d49d36242db89fa4490144767065 (diff)
Ajout d’un champ permettant de stocker la date de mise à jour du
calendrier celcat dans le modèle LastUpdate, ainsi que de quoi la lire depuis le XML
Diffstat (limited to 'management/commands')
-rw-r--r--management/commands/_private.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/management/commands/_private.py b/management/commands/_private.py
index c31eb34..f7f8435 100644
--- a/management/commands/_private.py
+++ b/management/commands/_private.py
@@ -21,6 +21,8 @@ from edt.models import Group, Room, Course
from edt.utils import get_week
import datetime
+import re
+
import requests
@@ -122,6 +124,29 @@ def get_events(timetable, year, week, soup, weeks_in_soup):
yield title, type_, groups, rooms, notes, begin, end
+def get_update_date(soup):
+ # Explication de la regex
+ #
+ # (\d+)/(\d+)/(\d+)\s+(\d+):(\d+):(\d+)
+ # (\d+) au moins un nombre
+ # / un slash
+ # (\d+) au moins un nombre
+ # / un slash
+ # (\d+) au moins un nombre
+ # \s+ au moins un espace
+ # (\d+) au moins un nombre
+ # : un deux-points
+ # (\d+) au moins un nombre
+ # : un deux-points
+ # (\d+) au moins un nombre
+ datetime_regex = re.compile("(\d+)/(\d+)/(\d+)\s+(\d+):(\d+):(\d+)")
+ search = datetime_regex.search(soup.footer.text)
+ if search is None:
+ return None
+
+ day, month, year, hour, minute, second = [int(v) for v in search.groups()]
+ return datetime.datetime(year, month, day, hour, minute, second)
+
def get_weeks(soup):
weeks = {}
for span in soup.find_all("span"):