示例#1
0
    def apply_rule(self, filename, id_):
        values = self.ui.get_values()
        sdays = values['selected_weekdays']
        rstart = values['start_relative_time']
        rstartH = values['start_hour']
        rstartM = values['start_minute']
        endtype = values['end_type']
        rend = values['end_relative_time']
        fend = values['end_next_day']
        rendn = values['end_relative_number']
        rendu = values['end_relative_unit']
        rendH = values['end_hour']
        rendM = values['end_minute']
        alarmtype = values['alarm_type']
        ralarm = values['alarm_relative_time']
        palarm = values['alarm_previous_day']
        ralarmn = values['alarm_relative_number']
        ralarmu = values['alarm_relative_unit']
        ralarmH = values['alarm_hour']
        ralarmM = values['alarm_minute']
        standard = values['time_standard']

        rstarts = [(d - sdays[0]) * 86400 for d in sdays]

        refstart = (int(_time.time()) // 604800 * 7 + 3 + sdays[0]) * 86400 + \
                                                                        rstart

        try:
            if standard == 'UTC':
                ruled = organism_basicrules_api.make_occur_regularly_group_rule_UTC(
                    refstart, 604800, rstarts, rend, ralarm,
                    ('sw', endtype, alarmtype))
            else:
                ruled = organism_basicrules_api.make_occur_regularly_group_rule_local(
                    refstart, 604800, rstarts, rend, ralarm,
                    ('sw', endtype, alarmtype))
        except organism_basicrules_api.BadRuleError:
            msgboxes.warn_bad_rule(msgboxes.generic).ShowModal()
        else:
            label = self._make_label(sdays, rstartH, rstartM, rendH, rendM,
                                     ralarmH, ralarmM, rendn, rendu, ralarmn,
                                     ralarmu, endtype, alarmtype, fend, palarm,
                                     standard)
            wxscheduler_api.apply_rule(filename, id_, ruled, label)
    def apply_rule(self, filename, id_):
        values = self.ui.get_values()
        sdays = values['selected_weekdays']
        rstart = values['start_relative_time']
        rstartH = values['start_hour']
        rstartM = values['start_minute']
        endtype = values['end_type']
        rend = values['end_relative_time']
        fend = values['end_next_day']
        rendn = values['end_relative_number']
        rendu = values['end_relative_unit']
        rendH = values['end_hour']
        rendM = values['end_minute']
        alarmtype = values['alarm_type']
        ralarm = values['alarm_relative_time']
        palarm = values['alarm_previous_day']
        ralarmn = values['alarm_relative_number']
        ralarmu = values['alarm_relative_unit']
        ralarmH = values['alarm_hour']
        ralarmM = values['alarm_minute']
        standard = values['time_standard']

        rstarts = [(d - sdays[0]) * 86400 for d in sdays]

        refstart = (int(_time.time()) // 604800 * 7 + 3 + sdays[0]) * 86400 + \
                                                                        rstart

        try:
            if standard == 'UTC':
                ruled = organism_basicrules_api.make_occur_regularly_group_rule_UTC(
                                    refstart, 604800, rstarts, rend, ralarm,
                                    ('sw', endtype, alarmtype))
            else:
                ruled = organism_basicrules_api.make_occur_regularly_group_rule_local(
                                    refstart, 604800, rstarts, rend, ralarm,
                                    ('sw', endtype, alarmtype))
        except organism_basicrules_api.BadRuleError:
            msgboxes.warn_bad_rule(msgboxes.generic).ShowModal()
        else:
            label = self._make_label(sdays, rstartH, rstartM, rendH, rendM,
                        ralarmH, ralarmM, rendn, rendu, ralarmn,
                        ralarmu, endtype, alarmtype, fend, palarm, standard)
            wxscheduler_api.apply_rule(filename, id_, ruled, label)
示例#3
0
    def create_random_rule():
        start = int((random.gauss(_time.time(), 15000))) // 60 * 60
        swd = _datetime.datetime.utcfromtimestamp(start).weekday()

        rdays = [
            0,
        ]
        rdays.extend(random.sample(range(1, 7), random.randint(0, 6)))

        # The lowest weekday must go first
        rrdays = [d + swd - 7 if d + swd > 6 else d + swd for d in rdays]
        rrdays.sort()
        rrdays0 = rrdays[0]
        rday = swd - rrdays0

        refstart = start - 86400 * rday
        rstarts = [(d - rrdays0) * 86400 for d in rrdays]

        endtype = random.randint(0, 2)

        if endtype == 0:
            rend = None
        else:
            rend = random.randint(1, 360) * 60

        alarmtype = random.randint(0, 2)

        if alarmtype == 0:
            ralarm = None
        else:
            ralarm = random.randint(0, 360) * 60

        stdn = random.randint(0, 1)

        if stdn == 0:
            return organism_basicrules_api.make_occur_regularly_group_rule_local(
                refstart, 604800, rstarts, rend, ralarm,
                ('sw', endtype, alarmtype))
        else:
            return organism_basicrules_api.make_occur_regularly_group_rule_UTC(
                refstart, 604800, rstarts, rend, ralarm,
                ('sw', endtype, alarmtype))
    def create_random_rule():
        start = int((random.gauss(_time.time(), 15000))) // 60 * 60
        swd = _datetime.datetime.utcfromtimestamp(start).weekday()

        rdays = [0, ]
        rdays.extend(random.sample(range(1, 7), random.randint(0, 6)))

        # The lowest weekday must go first
        rrdays = [d + swd - 7 if d + swd > 6 else d + swd for d in rdays]
        rrdays.sort()
        rrdays0 = rrdays[0]
        rday = swd - rrdays0

        refstart = start - 86400 * rday
        rstarts = [(d - rrdays0) * 86400 for d in rrdays]

        endtype = random.randint(0, 2)

        if endtype == 0:
            rend = None
        else:
            rend = random.randint(1, 360) * 60

        alarmtype = random.randint(0, 2)

        if alarmtype == 0:
            ralarm = None
        else:
            ralarm = random.randint(0, 360) * 60

        stdn = random.randint(0, 1)

        if stdn == 0:
            return organism_basicrules_api.make_occur_regularly_group_rule_local(
                                       refstart, 604800, rstarts, rend, ralarm,
                                                    ('sw', endtype, alarmtype))
        else:
            return organism_basicrules_api.make_occur_regularly_group_rule_UTC(
                                       refstart, 604800, rstarts, rend, ralarm,
                                                    ('sw', endtype, alarmtype))