def migrate_custom_daily_schedule(handler, migrator): return TimedSchedule.create_custom_daily_schedule( handler.domain, [(get_timed_event(handler, event), get_content(handler, event)) for event in handler.events], total_iterations=handler.max_iteration_count, start_offset=handler.start_offset, extra_options=get_extra_scheduling_options(handler, migrator, include_utc_option=True), repeat_every=handler.schedule_length, )
def _add_custom_daily_rule(self, content_list): event_and_content_objects = [ (TimedEvent(day=i % 7, time=time(i * 2 % 24, 30 + i % 60)), content) for i, content in enumerate(content_list) ] schedule = TimedSchedule.create_custom_daily_schedule( self.domain, event_and_content_objects, repeat_every=2, ) return self._add_rule(timed_schedule_id=schedule.schedule_id)
def migrate_offset_based_start_date_schedule(handler, migrator): base_datetime = datetime(2000, 1, 1) running_datetime = datetime(2000, 1, 1) event_and_content_objects = [] for event in handler.events: running_datetime += timedelta(days=event.day_num) running_datetime += timedelta(hours=event.fire_time.hour) running_datetime += timedelta(minutes=event.fire_time.minute) event_and_content_objects.append((TimedEvent( day=(running_datetime - base_datetime).days, time=running_datetime.time(), ), get_content(handler, event))) if handler.max_iteration_count == 1: repeat_every = event_and_content_objects[-1][0].day + 1 elif repeat_every_override: repeat_every = repeat_every_override else: raise ValueError("Expected repeat_every_override") if len(event_and_content_objects ) == 1 and event_and_content_objects[0][0].day == 0: return TimedSchedule.create_simple_daily_schedule( handler.domain, event_and_content_objects[0][0], event_and_content_objects[0][1], total_iterations=handler.max_iteration_count, start_offset=handler.start_offset, extra_options=get_extra_scheduling_options( handler, migrator, include_utc_option=True), repeat_every=repeat_every, ) else: return TimedSchedule.create_custom_daily_schedule( handler.domain, event_and_content_objects, total_iterations=handler.max_iteration_count, start_offset=handler.start_offset, extra_options=get_extra_scheduling_options( handler, migrator, include_utc_option=True), repeat_every=repeat_every, )