def createSchedules(self, forceUpdate=False): utils.log("update timers") self.lock = True # lock so the eval portion does not run self.schedules = [] showDialogs = utils.getSettingBool( 'notify_next_run' ) # if the user has selected to show dialogs for library operations if (utils.getSettingBool('clean_libraries')): # create clean schedule (if needed) if (utils.getSettingInt("clean_timer") != 0): if (utils.getSettingInt('library_to_clean') == 0 or utils.getSettingInt('library_to_clean') == 1): # video clean schedule starts at 12am by default aSchedule = CronSchedule() aSchedule.name = utils.getString(30048) aSchedule.timer_type = utils.__addon_id__ aSchedule.command = { 'method': 'VideoLibrary.Clean', 'params': { 'showdialogs': showDialogs } } if (utils.getSettingInt("clean_timer") == 4): aSchedule.expression = utils.getSetting( "clean_video_cron_expression") else: aSchedule.expression = "0 0 " + aSchedule.cleanLibrarySchedule( utils.getSettingInt("clean_timer")) aSchedule.next_run = self.calcNextRun( aSchedule.expression, time.time()) self.schedules.append(aSchedule) if (utils.getSettingInt('library_to_clean') == 2 or utils.getSettingInt('library_to_clean') == 0): # music clean schedule starts at 2am by default aSchedule = CronSchedule() aSchedule.name = utils.getString(30049) aSchedule.timer_type = utils.__addon_id__ aSchedule.command = { 'method': 'AudioLibrary.Clean', 'params': { 'showdialogs': showDialogs } } if (utils.getSettingInt("clean_timer") == 4): aSchedule.expression = utils.getSetting( "clean_music_cron_expression") else: aSchedule.expression = "0 2 " + aSchedule.cleanLibrarySchedule( utils.getSettingInt("clean_timer")) aSchedule.next_run = self.calcNextRun( aSchedule.expression, time.time()) self.schedules.append(aSchedule) if (utils.getSettingBool('update_video')): utils.log("Creating timer for Video Library") # create the video schedule aSchedule = CronSchedule() aSchedule.name = utils.getString(30012) aSchedule.command = { 'method': 'VideoLibrary.Scan', 'params': { 'showdialogs': showDialogs } } aSchedule.expression = self.checkTimer('video') aSchedule.next_run = self.calcNextRun(aSchedule.expression, self.last_run) self.schedules.append(aSchedule) # add custom video paths (separate timers) customPaths = CustomPathFile('video') for aJob in customPaths.getSchedules(showDialogs): utils.log("Creating timer " + aJob.name) aJob.next_run = self.calcNextRun(aJob.expression, self.last_run) self.schedules.append(aJob) if (utils.getSettingBool('update_music')): utils.log("Creating timer for Music Library") # create the music schedule aSchedule = CronSchedule() aSchedule.name = utils.getString(30013) aSchedule.command = { 'method': 'AudioLibrary.Scan', 'params': { 'showdialogs': showDialogs } } aSchedule.expression = self.checkTimer('music') aSchedule.next_run = self.calcNextRun(aSchedule.expression, self.last_run) self.schedules.append(aSchedule) # add custom music paths (separate timers) customPaths = CustomPathFile('music') for aJob in customPaths.getSchedules(showDialogs): utils.log("Creating timer " + aJob.name) aJob.next_run = self.calcNextRun(aJob.expression, self.last_run) self.schedules.append(aJob) # release the lock self.lock = False utils.log("Created " + str(len(self.schedules)) + " schedules", xbmc.LOGDEBUG) # show any notifications self.showNotify(not forceUpdate)
def createSchedules(self, forceUpdate=False): utils.log("update timers") self.lock = True #lock so the eval portion does not run self.schedules = [] if (utils.getSetting('clean_libraries') == 'true'): #create clean schedule (if needed) if (int(utils.getSetting("clean_timer")) != 0): if (utils.getSetting('library_to_clean') == '0' or utils.getSetting('library_to_clean') == '1'): #video clean schedule starts at 12am by default aSchedule = CronSchedule() aSchedule.name = utils.getString(30048) aSchedule.timer_type = utils.__addon_id__ aSchedule.command = 'video' if (int(utils.getSetting("clean_timer")) == 4): aSchedule.expression = utils.getSetting( "clean_video_cron_expression") else: aSchedule.expression = "0 0 " + aSchedule.cleanLibrarySchedule( int(utils.getSetting("clean_timer"))) aSchedule.next_run = self.calcNextRun( aSchedule.expression, time.time()) self.schedules.append(aSchedule) if (utils.getSetting('library_to_clean') == '2' or utils.getSetting('library_to_clean') == '0'): #music clean schedule starts at 2am by default aSchedule = CronSchedule() aSchedule.name = utils.getString(30049) aSchedule.timer_type = utils.__addon_id__ aSchedule.command = 'music' if (int(utils.getSetting("clean_timer")) == 4): aSchedule.expression = utils.getSetting( "clean_music_cron_expression") else: aSchedule.expression = "0 2 " + aSchedule.cleanLibrarySchedule( int(utils.getSetting("clean_timer"))) aSchedule.next_run = self.calcNextRun( aSchedule.expression, time.time()) self.schedules.append(aSchedule) if (utils.getSetting('update_video') == 'true'): utils.log("Creating timer for Video Library") #create the video schedule aSchedule = CronSchedule() aSchedule.name = utils.getString(30012) aSchedule.command = 'UpdateLibrary(video)' aSchedule.expression = self.checkTimer('video') aSchedule.next_run = self.calcNextRun(aSchedule.expression, self.last_run) self.schedules.append(aSchedule) if (utils.getSetting('update_music') == 'true'): utils.log("Creating timer for Music Library") #create the music schedule aSchedule = CronSchedule() aSchedule.name = utils.getString(30013) aSchedule.command = 'UpdateLibrary(music)' aSchedule.expression = self.checkTimer('music') aSchedule.next_run = self.calcNextRun(aSchedule.expression, self.last_run) self.schedules.append(aSchedule) #read in any custom path options customPaths = CustomPathFile() for aJob in customPaths.getSchedules(): utils.log("Creating timer " + aJob.name) aJob.next_run = self.calcNextRun(aJob.expression, self.last_run) self.schedules.append(aJob) #release the lock self.lock = False utils.log("Created " + str(len(self.schedules)) + " schedules", xbmc.LOGDEBUG) #show any notifications self.showNotify(not forceUpdate)