From 1f7817979c5272a5555e39344b4aa262dd5f7b4e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Wed, 21 Oct 2020 18:07:02 +0200 Subject: [PATCH] adjust time of dawn --- emissions/models.py | 12 +++++++----- emissions/utils.py | 4 ++-- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/emissions/models.py b/emissions/models.py index c6b7f99..d4123ae 100644 --- a/emissions/models.py +++ b/emissions/models.py @@ -40,22 +40,24 @@ PODCAST_SOUND_QUALITY_LIST = ( class WeekdayMixin(object): - DAY_HOUR_START = 5 + DAY_HOUR_START = 4 + DAY_MINUTE_START = 30 def get_weekday(self): weekday = self.datetime.weekday() + 7 - if self.datetime.time() < datetime.time(self.DAY_HOUR_START, 0): + if self.datetime.time() < datetime.time(self.DAY_HOUR_START, self.DAY_MINUTE_START): weekday -= 1 weekday %= 7 return weekday def is_on_weekday(self, day): # day is [1..7] week_day = self.datetime.weekday() - if self.datetime.hour < self.DAY_HOUR_START: + if (self.datetime.hour, self.datetime.minute) < (self.DAY_HOUR_START, self.DAY_MINUTE_START): week_day -= 1 week_day = (week_day % 7) + 1 if hasattr(self, 'episode'): - if self.datetime.hour < self.DAY_HOUR_START and self.end_datetime.hour > self.DAY_HOUR_START: + if (self.datetime.hour, self.datetime.minute) < (self.DAY_HOUR_START, self.DAY_MINUTE_START) and \ + (self.end_datetime.hour, self.end_datetime.minute) >= (self.DAY_HOUR_START, self.DAY_MINUTE_START): if (self.end_datetime.weekday()+1) == day: return True return week_day == day @@ -287,7 +289,7 @@ class Schedule(models.Model, WeekdayMixin): def matches(self, dt): weekday = dt.weekday() - if dt.hour < self.DAY_HOUR_START: + if (dt.hour, dt.minute) < (self.DAY_HOUR_START, self.DAY_MINUTE_START): weekday -= 1 if weekday != self.get_weekday(): return False diff --git a/emissions/utils.py b/emissions/utils.py index def59d6..cec0f63 100644 --- a/emissions/utils.py +++ b/emissions/utils.py @@ -56,7 +56,7 @@ def whatsonair(): now = datetime.now() # get program of today minus a few hours, as radio days are not from # midnight to midnigth but from 5am to 5am - program = day_program(now - timedelta(hours=Schedule.DAY_HOUR_START), + program = day_program(now - timedelta(hours=Schedule.DAY_HOUR_START) + timedelta(minutes=Schedule.DAY_MINUTE_START), prefetch_sounds=False, prefetch_categories=False, include_nonstop=False) program = [x for x in program if not x.datetime > now] @@ -220,7 +220,7 @@ def period_program(date_start, date_end, prefetch_sounds=True, # last step is adding nonstop zones between slots nonstops = list(Nonstop.objects.all().order_by('start')) nonstops = [x for x in nonstops if x.start != x.end] - dawn = time(Schedule.DAY_HOUR_START, 0) + dawn = time(Schedule.DAY_HOUR_START, Schedule.DAY_MINUTE_START) try: first_of_the_day = [x for x in nonstops if x.start <= dawn][-1] nonstops = nonstops[nonstops.index(first_of_the_day):] + nonstops[:nonstops.index(first_of_the_day)] -- 2.39.2