Exemplo n.º 1
0
def analyse(was_paused=False):
    """ Determine what pause/resume state we would have now.
    """
    paused = None
    paused_all = False
    pause_post = False
    speedlimit = None
    servers = {}

    for ev in sort_schedules(forward=False):
        logging.debug('Schedule check result = %s', ev)
        action = ev[1]
        try:
            value = ev[2]
        except:
            value = None
        if action == 'pause':
            paused = True
        elif action == 'pause_all':
            paused_all = True
        elif action == 'resume':
            paused = False
            paused_all = False
        elif action == 'pause_post':
            pause_post = True
        elif action == 'resume_post':
            pause_post = False
        elif action == 'speedlimit' and value != None:
            speedlimit = int(ev[2])
        elif action == 'enable_server':
            try:
                servers[value] = 1
            except:
                logging.warning(Ta('Schedule for non-existing server %s'),
                                value)
        elif action == 'disable_server':
            try:
                servers[value] = 0
            except:
                logging.warning(Ta('Schedule for non-existing server %s'),
                                value)

    if not was_paused:
        if paused_all:
            sabnzbd.pause_all()
        else:
            sabnzbd.unpause_all()
        sabnzbd.downloader.Downloader.do.set_paused_state(paused or paused_all)

    PostProcessor.do.paused = pause_post
    if speedlimit:
        sabnzbd.downloader.Downloader.do.limit_speed(speedlimit)
    for serv in servers:
        try:
            config.get_config('servers', serv).enable.set(servers[serv])
        except:
            pass
    config.save_config()
Exemplo n.º 2
0
def disable_server(server):
    """ Disable server (scheduler only) """
    try:
        config.get_config("servers", server).enable.set(0)
    except:
        logging.warning(T("Trying to set status of non-existing server %s"), server)
        return
    config.save_config()
    Downloader.do.update_server(server, server)
Exemplo n.º 3
0
def disable_server(server):
    """ Disable server (scheduler only) """
    try:
        config.get_config('servers', server).enable.set(0)
    except:
        logging.warning(T('Trying to set status of non-existing server %s'), server)
        return
    config.save_config()
    Downloader.do.update_server(server, server)
Exemplo n.º 4
0
def enable_server(server):
    """ Enable server (scheduler only) """
    try:
        config.get_config("servers", server).enable.set(1)
    except:
        logging.warning(T("Trying to set status of non-existing server %s"), server)
        return
    config.save_config()
    Downloader.do.update_server(server, server)
Exemplo n.º 5
0
def enable_server(server):
    """ Enable server (scheduler only) """
    try:
        config.get_config('servers', server).enable.set(1)
    except:
        logging.warning(T('Trying to set status of non-existing server %s'), server)
        return
    config.save_config()
    Downloader.do.update_server(server, server)
Exemplo n.º 6
0
def analyse(was_paused=False):
    """ Determine what pause/resume state we would have now.
    """
    paused = None
    paused_all = False
    pause_post = False
    speedlimit = None
    servers = {}

    for ev in sort_schedules(forward=False):
        logging.debug('Schedule check result = %s', ev)
        action = ev[1]
        try:
            value = ev[2]
        except:
            value = None
        if action == 'pause':
            paused = True
        elif action == 'pause_all':
            paused_all = True
        elif action == 'resume':
            paused = False
            paused_all = False
        elif action == 'pause_post':
            pause_post = True
        elif action == 'resume_post':
            pause_post = False
        elif action == 'speedlimit' and value!=None:
            speedlimit = int(ev[2])
        elif action == 'enable_server':
            try:
                servers[value] = 1
            except:
                logging.warning(Ta('Schedule for non-existing server %s'), value)
        elif action == 'disable_server':
            try:
                servers[value] = 0
            except:
                logging.warning(Ta('Schedule for non-existing server %s'), value)

    if not was_paused:
        if paused_all:
            sabnzbd.pause_all()
        else:
            sabnzbd.unpause_all()
        sabnzbd.downloader.Downloader.do.set_paused_state(paused or paused_all)

    PostProcessor.do.paused = pause_post
    if speedlimit:
        sabnzbd.downloader.Downloader.do.limit_speed(speedlimit)
    for serv in servers:
        try:
            config.get_config('servers', serv).enable.set(servers[serv])
        except:
            pass
    config.save_config()
Exemplo n.º 7
0
def analyse(was_paused=False):
    """ Determine what pause/resume state we would have now.
    """
    paused = None
    paused_all = False
    pause_post = False
    speedlimit = None
    servers = {}

    for ev in sort_schedules(all_events=True):
        logging.debug("Schedule check result = %s", ev)
        action = ev[1]
        try:
            value = ev[2]
        except:
            value = None
        if action == "pause":
            paused = True
        elif action == "pause_all":
            paused_all = True
        elif action == "resume":
            paused = False
            paused_all = False
        elif action == "pause_post":
            pause_post = True
        elif action == "resume_post":
            pause_post = False
        elif action == "speedlimit" and value != None:
            speedlimit = int(ev[2])
        elif action == "enable_server":
            try:
                servers[value] = 1
            except:
                logging.warning(Ta("Schedule for non-existing server %s"), value)
        elif action == "disable_server":
            try:
                servers[value] = 0
            except:
                logging.warning(Ta("Schedule for non-existing server %s"), value)

    if not was_paused:
        if paused_all:
            sabnzbd.pause_all()
        else:
            sabnzbd.unpause_all()
        sabnzbd.downloader.Downloader.do.set_paused_state(paused or paused_all)

    PostProcessor.do.paused = pause_post
    if speedlimit:
        sabnzbd.downloader.Downloader.do.limit_speed(speedlimit)
    for serv in servers:
        try:
            item = config.get_config("servers", serv)
            value = servers[serv]
            if bool(item.enable()) != bool(value):
                item.enable.set(value)
                sabnzbd.downloader.Downloader.do.init_server(serv, serv)
        except:
            pass
    config.save_config()
Exemplo n.º 8
0
def analyse(was_paused=False, priority=None):
    """ Determine what pause/resume state we would have now.
        'priority': evaluate only effect for given priority, return True for paused
    """
    global PP_PAUSE_EVENT
    PP_PAUSE_EVENT = False
    paused = None
    paused_all = False
    pause_post = False
    pause_low = pause_normal = pause_high = False
    speedlimit = None
    quota = True
    servers = {}

    for ev in sort_schedules(all_events=True):
        if priority is None:
            logging.debug('Schedule check result = %s', ev)
        action = ev[1]
        try:
            value = ev[2]
        except:
            value = None
        if action == 'pause':
            paused = True
        elif action == 'pause_all':
            paused_all = True
            PP_PAUSE_EVENT = True
        elif action == 'resume':
            paused = False
            paused_all = False
        elif action == 'pause_post':
            pause_post = True
            PP_PAUSE_EVENT = True
        elif action == 'resume_post':
            pause_post = False
            PP_PAUSE_EVENT = True
        elif action == 'speedlimit' and value is not None:
            speedlimit = ev[2]
        elif action == 'pause_all_low':
            pause_low = True
        elif action == 'pause_all_normal':
            pause_normal = True
        elif action == 'pause_all_high':
            pause_high = True
        elif action == 'resume_all_low':
            pause_low = False
        elif action == 'resume_all_normal':
            pause_normal = False
        elif action == 'resume_all_high':
            pause_high = False
        elif action == 'enable_quota':
            quota = True
        elif action == 'disable_quota':
            quota = False
        elif action == 'enable_server':
            try:
                servers[value] = 1
            except:
                logging.warning(T('Schedule for non-existing server %s'),
                                value)
        elif action == 'disable_server':
            try:
                servers[value] = 0
            except:
                logging.warning(T('Schedule for non-existing server %s'),
                                value)

    # Special case, a priority was passed, so evaluate only that and return state
    if priority == LOW_PRIORITY:
        return pause_low
    if priority == NORMAL_PRIORITY:
        return pause_normal
    if priority == HIGH_PRIORITY:
        return pause_high
    if priority is not None:
        return False

    # Normal analysis
    if not was_paused:
        if paused_all:
            sabnzbd.pause_all()
        else:
            sabnzbd.unpause_all()
        sabnzbd.downloader.Downloader.do.set_paused_state(paused or paused_all)

    PostProcessor.do.paused = pause_post
    if speedlimit is not None:
        sabnzbd.downloader.Downloader.do.limit_speed(speedlimit)

    sabnzbd.bpsmeter.BPSMeter.do.set_status(quota, action=False)

    for serv in servers:
        try:
            item = config.get_config('servers', serv)
            value = servers[serv]
            if bool(item.enable()) != bool(value):
                item.enable.set(value)
                sabnzbd.downloader.Downloader.do.init_server(serv, serv)
        except:
            pass
    config.save_config()
Exemplo n.º 9
0
def analyse(was_paused=False, priority=None):
    """ Determine what pause/resume state we would have now.
        'priority': evaluate only effect for given priority, return True for paused
    """
    global PP_PAUSE_EVENT
    PP_PAUSE_EVENT = False
    paused = None
    paused_all = False
    pause_post = False
    pause_low = pause_normal = pause_high = False
    speedlimit = None
    quota = True
    servers = {}

    for ev in sort_schedules(all_events=True):
        if priority is None:
            logging.debug('Schedule check result = %s', ev)
        action = ev[1]
        try:
            value = ev[2]
        except:
            value = None
        if action == 'pause':
            paused = True
        elif action == 'pause_all':
            paused_all = True
            PP_PAUSE_EVENT = True
        elif action == 'resume':
            paused = False
            paused_all = False
        elif action == 'pause_post':
            pause_post = True
            PP_PAUSE_EVENT = True
        elif action == 'resume_post':
            pause_post = False
            PP_PAUSE_EVENT = True
        elif action == 'speedlimit' and value is not None:
            speedlimit = ev[2]
        elif action == 'pause_all_low':
            pause_low = True
        elif action == 'pause_all_normal':
            pause_normal = True
        elif action == 'pause_all_high':
            pause_high = True
        elif action == 'resume_all_low':
            pause_low = False
        elif action == 'resume_all_normal':
            pause_normal = False
        elif action == 'resume_all_high':
            pause_high = False
        elif action == 'enable_quota':
            quota = True
        elif action == 'disable_quota':
            quota = False
        elif action == 'enable_server':
            try:
                servers[value] = 1
            except:
                logging.warning(T('Schedule for non-existing server %s'), value)
        elif action == 'disable_server':
            try:
                servers[value] = 0
            except:
                logging.warning(T('Schedule for non-existing server %s'), value)

    # Special case, a priority was passed, so evaluate only that and return state
    if priority == LOW_PRIORITY:
        return pause_low
    if priority == NORMAL_PRIORITY:
        return pause_normal
    if priority == HIGH_PRIORITY:
        return pause_high
    if priority is not None:
        return False

    # Normal analysis
    if not was_paused:
        if paused_all:
            sabnzbd.pause_all()
        else:
            sabnzbd.unpause_all()
        sabnzbd.downloader.Downloader.do.set_paused_state(paused or paused_all)

    PostProcessor.do.paused = pause_post
    if speedlimit is not None:
        sabnzbd.downloader.Downloader.do.limit_speed(speedlimit)

    sabnzbd.bpsmeter.BPSMeter.do.set_status(quota, action=False)

    for serv in servers:
        try:
            item = config.get_config('servers', serv)
            value = servers[serv]
            if bool(item.enable()) != bool(value):
                item.enable.set(value)
                sabnzbd.downloader.Downloader.do.init_server(serv, serv)
        except:
            pass
    config.save_config()
Exemplo n.º 10
0
    def analyse(self, was_paused=False, priority=None):
        """Determine what pause/resume state we would have now.
        'priority': evaluate only effect for given priority, return True for paused
        """
        self.pp_pause_event = False
        paused = None
        paused_all = False
        pause_post = False
        pause_low = pause_normal = pause_high = False
        speedlimit = None
        quota = True
        servers = {}

        for ev in sort_schedules(all_events=True):
            if priority is None:
                logging.debug("Schedule check result = %s", ev)

            # Skip if disabled
            if ev[4] == "0":
                continue

            action = ev[1]
            try:
                value = ev[2]
            except:
                value = None
            if action == "pause":
                paused = True
            elif action == "pause_all":
                paused_all = True
                self.pp_pause_event = True
            elif action == "resume":
                paused = False
                paused_all = False
            elif action == "pause_post":
                pause_post = True
                self.pp_pause_event = True
            elif action == "resume_post":
                pause_post = False
                self.pp_pause_event = True
            elif action == "speedlimit" and value is not None:
                speedlimit = ev[2]
            elif action == "pause_all_low":
                pause_low = True
            elif action == "pause_all_normal":
                pause_normal = True
            elif action == "pause_all_high":
                pause_high = True
            elif action == "resume_all_low":
                pause_low = False
            elif action == "resume_all_normal":
                pause_normal = False
            elif action == "resume_all_high":
                pause_high = False
            elif action == "enable_quota":
                quota = True
            elif action == "disable_quota":
                quota = False
            elif action == "enable_server":
                try:
                    servers[value] = 1
                except:
                    logging.warning(T("Schedule for non-existing server %s"),
                                    value)
            elif action == "disable_server":
                try:
                    servers[value] = 0
                except:
                    logging.warning(T("Schedule for non-existing server %s"),
                                    value)

        # Special case, a priority was passed, so evaluate only that and return state
        if priority == LOW_PRIORITY:
            return pause_low
        if priority == NORMAL_PRIORITY:
            return pause_normal
        if priority == HIGH_PRIORITY:
            return pause_high
        if priority is not None:
            return False

        # Normal analysis
        if not was_paused:
            if paused_all:
                sabnzbd.pause_all()
            else:
                sabnzbd.unpause_all()
            sabnzbd.Downloader.set_paused_state(paused or paused_all)

        sabnzbd.PostProcessor.paused = pause_post
        if speedlimit is not None:
            sabnzbd.Downloader.limit_speed(speedlimit)

        sabnzbd.BPSMeter.set_status(quota, action=False)

        for serv in servers:
            try:
                item = config.get_config("servers", serv)
                value = servers[serv]
                if bool(item.enable()) != bool(value):
                    item.enable.set(value)
                    sabnzbd.Downloader.init_server(serv, serv)
            except:
                pass
        config.save_config()