Exemple #1
0
    def index(self, **kwargs):
        """ Show the language selection page """
        if cfg.configlock() or not sabnzbd.interface.check_access():
            return sabnzbd.interface.Protected()
        if not sabnzbd.interface.check_login():
            raise sabnzbd.interface.NeedLogin()

        info = self.info.copy()
        lng = None
        if sabnzbd.WIN32:
            import util.apireg
            lng = util.apireg.get_install_lng()
            logging.debug('Installer language code "%s"', lng)
        info['lang'] = lng or cfg.language()
        info['active_lang'] = info['lang']
        info['languages'] = list_languages()
        info['T'] = Ttemplate

        set_language(info['lang'])
        sabnzbd.api.clear_trans_cache()

        if not os.path.exists(self.__web_dir):
            # If the wizard folder does not exist, simply load the normal page
            raise cherrypy.HTTPRedirect('')
        else:
            template = Template(file=os.path.join(self.__web_dir,
                                                  'index.html'),
                                searchList=[info],
                                compilerSettings=sabnzbd.interface.DIRECTIVES)
            return template.respond()
Exemple #2
0
    def two(self, **kwargs):
        """ Accept server and show the final page for restart """
        if cfg.configlock() or not sabnzbd.interface.check_access():
            return sabnzbd.interface.Protected()
        if not sabnzbd.interface.check_login():
            raise sabnzbd.interface.NeedLogin()

        # Save server details
        if kwargs:
            kwargs['enable'] = 1
            sabnzbd.interface.handle_server(kwargs)

        config.save_config()

        # Show Restart screen
        info = self.info.copy()
        info['helpuri'] = 'https://sabnzbd.org/wiki/'
        info['session'] = cfg.api_key()

        info['access_url'], info['urls'] = self.get_access_info()
        info['active_lang'] = cfg.language()
        info['T'] = Ttemplate

        info['download_dir'] = cfg.download_dir.get_path()
        info['complete_dir'] = cfg.complete_dir.get_path()

        template = Template(file=os.path.join(self.__web_dir, 'two.html'),
                            searchList=[info],
                            compilerSettings=sabnzbd.interface.DIRECTIVES)
        return template.respond()
Exemple #3
0
    def one(self, **kwargs):
        """ Accept language and show server page """
        if cfg.configlock() or not sabnzbd.interface.check_access():
            return sabnzbd.interface.Protected()
        if not sabnzbd.interface.check_login():
            raise sabnzbd.interface.NeedLogin()

        language = kwargs.get('lang') if kwargs.get('lang') else cfg.language()
        cfg.language.set(language)
        set_language(language)
        sabnzbd.api.clear_trans_cache()

        # Always setup Glitter
        sabnzbd.interface.change_web_dir('Glitter - Default')

        info = self.info.copy()
        info['session'] = cfg.api_key()
        info['language'] = cfg.language()
        info['active_lang'] = info['language']
        info['T'] = Ttemplate
        info['have_ssl_context'] = sabnzbd.HAVE_SSL_CONTEXT

        servers = config.get_servers()
        if not servers:
            info['host'] = ''
            info['port'] = ''
            info['username'] = ''
            info['password'] = ''
            info['connections'] = ''
            info['ssl'] = 0
            info['ssl_verify'] = 2
        else:
            # Sort servers to get the first enabled one
            server_names = sorted(
                servers.keys(),
                key=lambda svr: '%d%02d%s' %
                (int(not servers[svr].enable()), servers[svr].priority(),
                 servers[svr].displayname().lower()))
            for server in server_names:
                # If there are multiple servers, just use the first enabled one
                s = servers[server]
                info['host'] = s.host()
                info['port'] = s.port()
                info['username'] = s.username()
                info['password'] = s.password.get_stars()
                info['connections'] = s.connections()
                info['ssl'] = s.ssl()
                info['ssl_verify'] = s.ssl_verify()
                if s.enable():
                    break
        template = Template(file=os.path.join(self.__web_dir, 'one.html'),
                            searchList=[info],
                            compilerSettings=sabnzbd.interface.DIRECTIVES)
        return template.respond()
Exemple #4
0
    def exit(self, **kwargs):
        """ Stop SABnzbd """
        if cfg.configlock() or not sabnzbd.interface.check_access():
            return sabnzbd.interface.Protected()
        if not sabnzbd.interface.check_login():
            raise sabnzbd.interface.NeedLogin()

        logging.info('Shutdown requested by wizard')
        sabnzbd.halt()
        cherrypy.engine.exit()
        sabnzbd.SABSTOP = True
        return T('SABnzbd shutdown finished')