def setUp(self): self.daytime1 = Daytime.fromtime(time(0, 0, 0, 8000)) self.daytime2 = Daytime.strptime('2,20,22,007000', '%H,%M,%S,%f') self.daytime3 = Daytime.utcfromtimestamp( Daytime(2, 20, 23, 90000).as_seconds) self.daytime4 = Daytime.fromtimestamp( Daytime(12, 25, 0, 8400).as_seconds, UTC()) self.daytime5 = Daytime(18, 43, 20, 6000) self.daytime6 = Daytime.daytime
def check_timetable(database): current_msk = Daytime.fromtime(datetime.datetime.now(MSK_TIMEZONE)) current_weekday = constants.weekdays[datetime.datetime.now( MSK_TIMEZONE).weekday()] interval_start = current_msk + 540 interval_stop = current_msk + 600 for_notifying = {} for user in database.get_all(): user_delta = user.get('settings', {}).get('timezone', 0) timetable = user.get('timetable', {}).get(current_weekday, {}) if timetable: for time, note in timetable.items(): if interval_start < Daytime.strptime( time, '%H:%M') - datetime.timedelta( hours=user_delta) < interval_stop: if for_notifying.get(user['id']): for_notifying[user['id']].append({time: note}) else: for_notifying[user['id']] = [{time: note}] return for_notifying