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()
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()
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()
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')