diff options
| -rw-r--r-- | management/commands/_private.py | 25 | ||||
| -rw-r--r-- | models.py | 2 | 
2 files changed, 27 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"): @@ -51,6 +51,8 @@ class LastUpdate(models.Model):      year = models.IntegerField(verbose_name="année")      date = models.DateTimeField(verbose_name="date de mise à jour") +    updated_at = models.DateTimeField(verbose_name="date de publication", null=True) +      def __str__(self):          return "{0}, semaine {1} de {2}".format(self.timetable.name, self.week, self.year) | 
