diff options
Diffstat (limited to 'management/commands/_private.py')
| -rw-r--r-- | management/commands/_private.py | 39 | 
1 files changed, 32 insertions, 7 deletions
diff --git a/management/commands/_private.py b/management/commands/_private.py index c31eb34..17896c4 100644 --- a/management/commands/_private.py +++ b/management/commands/_private.py @@ -1,18 +1,17 @@  #    Copyright (C) 2017  Alban Gruin  # -#    celcatsanitizer is free software; you can redistribute it and/or modify -#    it under the terms of the GNU General Public License as published by -#    the Free Software Foundation; either version 2 of the License, or +#    celcatsanitizer is free software: you can redistribute it and/or modify +#    it under the terms of the GNU Affero General Public License as published +#    by the Free Software Foundation, either version 3 of the License, or  #    (at your option) any later version.  #  #    celcatsanitizer is distributed in the hope that it will be useful,  #    but WITHOUT ANY WARRANTY; without even the implied warranty of  #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -#    GNU General Public License for more details. +#    GNU Affero General Public License for more details.  # -#    You should have received a copy of the GNU General Public License along -#    with celcatsanitizer; if not, write to the Free Software Foundation, Inc., -#    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +#    You should have received a copy of the GNU Affero General Public License +#    along with celcatsanitizer.  If not, see <http://www.gnu.org/licenses/>.  from bs4 import BeautifulSoup  from django.utils import timezone @@ -21,6 +20,8 @@ from edt.models import Group, Room, Course  from edt.utils import get_week  import datetime +import re +  import requests @@ -122,6 +123,30 @@ 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()] +    date = datetime.datetime(year, month, day, hour, minute, second) +    return timezone.make_aware(date) +  def get_weeks(soup):      weeks = {}      for span in soup.find_all("span"):  | 
