Example #1
0
 def schedule_randomly(self, message):
     logger.debug('Setting message {} to intermittent schedule'.format(
         message['message']))
     webhook = message['webhook']
     unflat_text = message['message']
     schedule = message['schedule']
     if 'days' in schedule and weekdays[
             self.date.weekday()] not in schedule['days']:
         return
     if 'end_date' in schedule and schedule['end_date'] <= self.date:
         return
     start_time = datetime.combine(
         self.date, time.fromisoformat(schedule['start_time']))
     end_time = datetime.combine(self.date,
                                 time.fromisoformat(schedule['end_time']))
     min_interval, max_interval = (
         int(mins) * 60
         for mins in schedule['minutes_apart_range'].split('-'))
     for message_time in self.get_random_times(start_time, end_time,
                                               min_interval, max_interval):
         if datetime.now() > message_time:
             logger.debug('Skipping message {}: already past {}'.format(
                 unflat_text, message_time.isoformat()))
             continue
         new_message = Message(webhook, unflat_text, self.rules,
                               message_time)
         self.messages.append(new_message)
Example #2
0
 def schedule_hourly(self, message):
     logger.debug('Setting message {} to hourly schedule'.format(
         message['message']))
     start_time = datetime.combine(self.date, time(0, 0, 0))
     interval = message['schedule']['interval']
     webhook = message['webhook']
     unflat_text = message['message']
     for message_time in (start_time + timedelta(hours=n)
                          for n in range(0, 24, interval)):
         if datetime.now() > message_time:
             logger.debug('Skipping message {}: already past {}'.format(
                 unflat_text, message_time.isoformat()))
             continue
         new_message = Message(webhook, unflat_text, self.rules,
                               message_time)
         self.messages.append(new_message)
Example #3
0
 def schedule_weekly(self, message):
     day_of_week = weekdays[self.date.weekday()]
     webhook = message['webhook']
     unflat_text = message['message']
     if day_of_week in message['schedule']['days']:
         dt = self.date
         h, m = message['schedule']['time'].split(':')
         tm = time(int(h), int(m))
         message_time = datetime.combine(dt, tm)
         if datetime.now() > message_time + timedelta(minutes=15):
             logger.debug('Skipping message {}: already past {}'.format(
                 unflat_text, message_time.isoformat()))
             return
         new_message = Message(webhook, unflat_text, self.rules,
                               message_time)
         self.messages.append(new_message)