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
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
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]
# 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)]