Пример #1
0
 def __call__(self, parser, namespace, values, option_string=None):
     try:
         if type(values) == str:
             daytime = Daytime.fromtime(timeparser.parsetime(values))
         else:
             daytime = [Daytime.fromtime(timeparser.parsetime(d)) for d in values]
     except ValueError:
         raise ArgumentError(self, self.ERR % (values, 'daytime'))
     else:
         setattr(namespace, self.dest, daytime)
Пример #2
0
 def __call__(self, parser, namespace, values, option_string=None):
     value = ' '.join(values) if isinstance(values, list) else values
     try:
         daytime = Daytime.fromtime(timeparser.parsetime(values))
     except ValueError:
         raise ArgumentError(self, self.ERR % (values, 'daytime'))
     else:
         self.append(namespace, daytime)
Пример #3
0
 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
Пример #4
0
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