def run(last_run_version): if config.get(["modules", "launcher", "auto_start"], 0): import autorun autorun.enable() if os.path.isdir(os.path.join(top_path, 'launcher')): shutil.rmtree(os.path.join( top_path, 'launcher')) # launcher is for auto-update from 2.X if older_or_equal(last_run_version, '3.0.4'): xlog.info("migrating to 3.x.x") for filename in os.listdir(top_path): filepath = os.path.join(top_path, filename) if os.path.isfile(filepath): if sys.platform != 'win32' and filename == 'start': st = os.stat(filepath) os.chmod(filepath, st.st_mode | stat.S_IEXEC) if filename in [ 'start.sh', 'start.command', 'start.lnk', 'LICENSE.txt', 'download.md', 'version.txt', 'xxnet', 'xxnet.bat', 'xxnet.vbs' ]: os.remove(filepath) else: if filename in [ 'goagent', 'python27', 'gae_proxy', 'php_proxy', 'x_tunnel', 'python3', 'Python3', 'lib', 'SwitchySharp' ]: shutil.rmtree(filepath)
def run(last_run_version): if config.auto_start == 1: import autorun autorun.enable() if os.path.isdir(os.path.join(top_path, 'launcher')): shutil.rmtree(os.path.join(top_path, 'launcher')) # launcher is for auto-update from 2.X
def run(last_run_version): if config.get(["modules", "launcher", "auto_start"], 0): import autorun autorun.enable() if os.path.isdir(os.path.join(top_path, 'launcher')): shutil.rmtree(os.path.join( top_path, 'launcher')) # launcher is for auto-update from 2.X if older_or_equal(last_run_version, '3.0.4'): xlog.info("migrating to 3.x.x") for filename in os.listdir(top_path): filepath = os.path.join(top_path, filename) if os.path.isfile(filepath): if sys.platform != 'win32' and filename == 'start': st = os.stat(filepath) os.chmod(filepath, st.st_mode | stat.S_IEXEC) if not filename.startswith('.') and filename not in [ 'README.md', 'start', 'start.bat', 'start.vbs' ]: os.remove(filepath) else: if not filename.startswith('.') and filename not in [ 'code', 'data' ]: shutil.rmtree(filepath)
def req_config_handler(self): req = urlparse.urlparse(self.path).query reqs = urlparse.parse_qs(req, keep_blank_values=True) data = '' if reqs['cmd'] == ['get_config']: config.load() data = '{ "check_update": "%d", "popup_webui": %d, "auto_start": %d, "php_enable": %d }' %\ (config.get(["update", "check_update"], 1) , config.get(["modules", "launcher", "popup_webui"], 1) , config.get(["modules", "launcher", "auto_start"], 0) , config.get(["modules", "php_proxy", "auto_start"], 0)) elif reqs['cmd'] == ['set_config']: if 'check_update' in reqs: check_update = int(reqs['check_update'][0]) if check_update != 0 and check_update != 1: data = '{"res":"fail, check_update:%s"}' % check_update else: config.set(["update", "check_update"], int(check_update)) config.save() data = '{"res":"success"}' elif 'popup_webui' in reqs : popup_webui = int(reqs['popup_webui'][0]) if popup_webui != 0 and popup_webui != 1: data = '{"res":"fail, popup_webui:%s"}' % popup_webui else: config.set(["modules", "launcher", "popup_webui"], popup_webui) config.save() data = '{"res":"success"}' elif 'auto_start' in reqs : auto_start = int(reqs['auto_start'][0]) if auto_start != 0 and auto_start != 1: data = '{"res":"fail, auto_start:%s"}' % auto_start else: if auto_start: autorun.enable() else: autorun.disable() config.set(["modules", "launcher", "auto_start"], auto_start) config.save() data = '{"res":"success"}' elif 'php_enable' in reqs : php_enable = int(reqs['php_enable'][0]) if php_enable != 0 and php_enable != 1: data = '{"res":"fail, php_enable:%s"}' % php_enable else: config.set(["modules", "php_proxy", "auto_start"], php_enable) config.save() data = '{"res":"success"}' else: data = '{"res":"fail"}' self.send_response('text/html', data)
def req_config_handler(self): req = urlparse.urlparse(self.path).query reqs = urlparse.parse_qs(req, keep_blank_values=True) data = '' if reqs['cmd'] == ['get_config']: config.load() data = '{ "check_update": "%d", "popup_webui": %d, "auto_start": %d }' %\ (config.get(["update", "check_update"], 1) , config.get(["modules", "launcher", "popup_webui"], 1) , config.get(["modules", "launcher", "auto_start"], 0)) elif reqs['cmd'] == ['set_config']: if 'check_update' in reqs: check_update = int(reqs['check_update'][0]) if check_update != 0 and check_update != 1: data = '{"res":"fail, check_update:%s"}' % check_update else: config.config["update"]["check_update"] = int(check_update) config.save() data = '{"res":"success"}' elif 'popup_webui' in reqs: popup_webui = int(reqs['popup_webui'][0]) if popup_webui != 0 and popup_webui != 1: data = '{"res":"fail, popup_webui:%s"}' % popup_webui else: config.set(["modules", "launcher", "popup_webui"], popup_webui) config.save() data = '{"res":"success"}' elif 'auto_start' in reqs: auto_start = int(reqs['auto_start'][0]) if auto_start != 0 and auto_start != 1: data = '{"res":"fail, auto_start:%s"}' % auto_start else: if auto_start: autorun.enable() else: autorun.disable() config.set(["modules", "launcher", "auto_start"], auto_start) config.save() data = '{"res":"success"}' else: data = '{"res":"fail"}' self.send_response('application/json', data)
def req_config_handler(self): req = urlparse.urlparse(self.path).query reqs = urlparse.parse_qs(req, keep_blank_values=True) data = "" if reqs["cmd"] == ["get_config"]: config.load() data = '{ "check_update": "%d", "popup_webui": %d, "auto_start": %d }' % ( config.get(["update", "check_update"], 1), config.get(["modules", "launcher", "popup_webui"], 1), config.get(["modules", "launcher", "auto_start"], 0), ) elif reqs["cmd"] == ["set_config"]: if "check_update" in reqs: check_update = int(reqs["check_update"][0]) if check_update != 0 and check_update != 1: data = '{"res":"fail, check_update:%s"}' % check_update else: config.set(["update", "check_update"], int(check_update)) config.save() data = '{"res":"success"}' elif "popup_webui" in reqs: popup_webui = int(reqs["popup_webui"][0]) if popup_webui != 0 and popup_webui != 1: data = '{"res":"fail, popup_webui:%s"}' % popup_webui else: config.set(["modules", "launcher", "popup_webui"], popup_webui) config.save() data = '{"res":"success"}' elif "auto_start" in reqs: auto_start = int(reqs["auto_start"][0]) if auto_start != 0 and auto_start != 1: data = '{"res":"fail, auto_start:%s"}' % auto_start else: if auto_start: autorun.enable() else: autorun.disable() config.set(["modules", "launcher", "auto_start"], auto_start) config.save() data = '{"res":"success"}' else: data = '{"res":"fail"}' self.send_response("application/json", data)
def run(last_run_version): if config.get(["modules", "launcher", "auto_start"], 0): import autorun autorun.enable() if older_or_equal(last_run_version, '3.0.4'): xlog.info("migrating to 3.0.5") for filename in os.listdir(top_path): filepath = os.path.join(top_path, filename) if os.path.isfile(filepath): if sys.platform != 'win32' and filename == 'xxnet': st = os.stat(filepath) os.chmod(filepath, st.st_mode | stat.S_IEXEC) if not filename.startswith('.') and filename not in ['README.md', 'xxnet', 'xxnet.bat', 'xxnet.vbs']: os.remove(filepath) else: if not filename.startswith('.') and filename not in ['code', 'data']: shutil.rmtree(filepath)
def run(last_run_version): if config.get(["modules", "launcher", "auto_start"], 0): import autorun autorun.enable() if os.path.isdir(os.path.join(top_path, 'launcher')): shutil.rmtree(os.path.join(top_path, 'launcher')) # launcher is for auto-update from 2.X if older_or_equal(last_run_version, '3.0.4'): xlog.info("migrating to 3.x.x") for filename in os.listdir(top_path): filepath = os.path.join(top_path, filename) if os.path.isfile(filepath): if sys.platform != 'win32' and filename == 'start': st = os.stat(filepath) os.chmod(filepath, st.st_mode | stat.S_IEXEC) if filename in ['start.sh', 'start.command', 'start.lnk', 'LICENSE.txt', 'download.md', 'version.txt', 'xxnet', 'xxnet.bat', 'xxnet.vbs']: os.remove(filepath) else: if filename in ['goagent', 'python27', 'gae_proxy', 'php_proxy', 'x_tunnel', 'python3', 'Python3', 'lib', 'SwitchySharp']: shutil.rmtree(filepath)
def req_config_handler(self): req = urlparse.urlparse(self.path).query reqs = urlparse.parse_qs(req, keep_blank_values=True) data = '' if reqs['cmd'] == ['get_config']: config.load() check_update = config.get(["update", "check_update"], "notice-stable") data = '{ "check_update": "%s", "language": "%s", "popup_webui": %d, "allow_remote_connect": %d, \ "show_systray": %d, "auto_start": %d, "show_detail": %d, "gae_proxy_enable": %d, "x_tunnel_enable": %d, \ "smart_router_enable": %d, "no_mess_system": %d }' %\ (check_update , config.get(["language"], i18n_translator.lang) , config.get(["modules", "launcher", "popup_webui"], 1) , config.get(["modules", "launcher", "allow_remote_connect"], 0) , config.get(["modules", "launcher", "show_systray"], 1) , config.get(["modules", "launcher", "auto_start"], 0) , config.get(["modules", "gae_proxy", "show_detail"], 0) , config.get(["modules", "gae_proxy", "auto_start"], 0) , config.get(["modules", "x_tunnel", "auto_start"], 0) , config.get(["modules", "smart_router", "auto_start"], 0) , config.get(["no_mess_system"], 0) ) if reqs['cmd'] == ['get_version']: current_version = update_from_github.current_version() data = '{"current_version":"%s"}' % (current_version) elif reqs['cmd'] == ['set_config']: if 'skip_version' in reqs: skip_version = reqs['skip_version'][0] skip_version_type = reqs['skip_version_type'][0] if skip_version_type not in ["stable", "test"]: data = '{"res":"fail"}' else: config.set(["update", "skip_%s_version" % skip_version_type], skip_version) config.save() if skip_version in update_from_github.update_info: update_from_github.update_info = '' data = '{"res":"success"}' elif 'check_update' in reqs: check_update = reqs['check_update'][0] if check_update not in ["dont-check", "stable", "notice-stable", "test", "notice-test"]: data = '{"res":"fail, check_update:%s"}' % check_update else: if config.get(["update", "check_update"]) != check_update: update_from_github.init_update_info(check_update) config.set(["update", "check_update"], check_update) config.save() data = '{"res":"success"}' elif 'language' in reqs: language = reqs['language'][0] if language not in i18n_translator.get_valid_languages(): data = '{"res":"fail, language:%s"}' % language else: config.set(["language"], language) config.save() i18n_translator.lang = language self.load_module_menus() data = '{"res":"success"}' elif 'popup_webui' in reqs: popup_webui = int(reqs['popup_webui'][0]) if popup_webui != 0 and popup_webui != 1: data = '{"res":"fail, popup_webui:%s"}' % popup_webui else: config.set(["modules", "launcher", "popup_webui"], popup_webui) config.save() data = '{"res":"success"}' elif 'allow_remote_connect' in reqs: allow_remote_connect = int(reqs['allow_remote_connect'][0]) if allow_remote_connect != 0 and allow_remote_connect != 1: data = '{"res":"fail, allow_remote_connect:%s"}' % allow_remote_connect else: config.set(["modules", "launcher", "allow_remote_connect"], allow_remote_connect) config.save() data = '{"res":"success"}' xlog.debug("restart web control.") stop() time.sleep(1) start() xlog.debug("launcher web control restarted.") elif 'show_systray' in reqs: show_systray = int(reqs['show_systray'][0]) if show_systray != 0 and show_systray != 1: data = '{"res":"fail, show_systray:%s"}' % show_systray else: config.set(["modules", "launcher", "show_systray"], show_systray) config.save() data = '{"res":"success"}' elif 'no_mess_system' in reqs: no_mess_system = int(reqs['no_mess_system'][0]) if no_mess_system != 0 and no_mess_system != 1: data = '{"res":"fail, show_systray:%s"}' % no_mess_system else: config.set(["no_mess_system"], no_mess_system) config.save() data = '{"res":"success"}' elif 'auto_start' in reqs: auto_start = int(reqs['auto_start'][0]) if auto_start != 0 and auto_start != 1: data = '{"res":"fail, auto_start:%s"}' % auto_start else: if auto_start: autorun.enable() else: autorun.disable() config.set(["modules", "launcher", "auto_start"], auto_start) config.save() data = '{"res":"success"}' elif 'show_detail' in reqs: show_detail = int(reqs['show_detail'][0]) if show_detail != 0 and show_detail != 1: data = '{"res":"fail, show_detail:%s"}' % show_detail else: config.set(["modules", "gae_proxy", "show_detail"], show_detail) config.save() data = '{"res":"success"}' elif 'gae_proxy_enable' in reqs : gae_proxy_enable = int(reqs['gae_proxy_enable'][0]) if gae_proxy_enable != 0 and gae_proxy_enable != 1: data = '{"res":"fail, gae_proxy_enable:%s"}' % gae_proxy_enable else: config.set(["modules", "gae_proxy", "auto_start"], gae_proxy_enable) config.save() if gae_proxy_enable: module_init.start("gae_proxy") else: module_init.stop("gae_proxy") self.load_module_menus() data = '{"res":"success"}' elif 'x_tunnel_enable' in reqs : x_tunnel_enable = int(reqs['x_tunnel_enable'][0]) if x_tunnel_enable != 0 and x_tunnel_enable != 1: data = '{"res":"fail, x_tunnel_enable:%s"}' % x_tunnel_enable else: config.set(["modules", "x_tunnel", "auto_start"], x_tunnel_enable) config.save() if x_tunnel_enable: module_init.start("x_tunnel") else: module_init.stop("x_tunnel") self.load_module_menus() data = '{"res":"success"}' elif 'smart_router_enable' in reqs : smart_router_enable = int(reqs['smart_router_enable'][0]) if smart_router_enable != 0 and smart_router_enable != 1: data = '{"res":"fail, smart_router_enable:%s"}' % smart_router_enable else: config.set(["modules", "smart_router", "auto_start"], smart_router_enable) config.save() if smart_router_enable: module_init.start("smart_router") else: module_init.stop("smart_router") self.load_module_menus() data = '{"res":"success"}' else: data = '{"res":"fail"}' self.send_response('text/html', data)
def req_config_handler(self): req = urlparse.urlparse(self.path).query reqs = urlparse.parse_qs(req, keep_blank_values=True) data = '' if reqs['cmd'] == ['get_config']: config.load() check_update = config.get(["update", "check_update"], 1) if check_update == 0: check_update = "dont-check" elif check_update == 1: check_update = "stable" data = '{ "check_update": "%s", "language": "%s", "popup_webui": %d, "allow_remote_connect": %d, \ "show_systray": %d, "auto_start": %d, "show_detail": %d, "php_enable": %d, "gae_proxy_enable": %d, \ "x_tunnel_enable": %d}' %\ (check_update , config.get(["language"], i18n_translator.lang) , config.get(["modules", "launcher", "popup_webui"], 1) , config.get(["modules", "launcher", "allow_remote_connect"], 0) , config.get(["modules", "launcher", "show_systray"], 1) , config.get(["modules", "launcher", "auto_start"], 0) , config.get(["modules", "gae_proxy", "show_detail"], 0) , config.get(["modules", "php_proxy", "auto_start"], 0) , config.get(["modules", "gae_proxy", "auto_start"], 0) , config.get(["modules", "x_tunnel", "auto_start"], 0) ) elif reqs['cmd'] == ['set_config']: if 'check_update' in reqs: check_update = reqs['check_update'][0] if check_update not in ["dont-check", "stable", "test"]: data = '{"res":"fail, check_update:%s"}' % check_update else: config.set(["update", "check_update"], check_update) config.save() data = '{"res":"success"}' elif 'language' in reqs: language = reqs['language'][0] if language not in i18n_translator.get_valid_languages(): data = '{"res":"fail, language:%s"}' % language else: config.set(["language"], language) config.save() i18n_translator.lang = language self.load_module_menus() data = '{"res":"success"}' elif 'popup_webui' in reqs: popup_webui = int(reqs['popup_webui'][0]) if popup_webui != 0 and popup_webui != 1: data = '{"res":"fail, popup_webui:%s"}' % popup_webui else: config.set(["modules", "launcher", "popup_webui"], popup_webui) config.save() data = '{"res":"success"}' elif 'allow_remote_connect' in reqs: allow_remote_connect = int(reqs['allow_remote_connect'][0]) if allow_remote_connect != 0 and allow_remote_connect != 1: data = '{"res":"fail, allow_remote_connect:%s"}' % allow_remote_connect else: config.set(["modules", "launcher", "allow_remote_connect"], allow_remote_connect) config.save() data = '{"res":"success"}' xlog.debug("restart web control.") stop() time.sleep(1) start() xlog.debug("launcher web control restarted.") elif 'show_systray' in reqs: show_systray = int(reqs['show_systray'][0]) if show_systray != 0 and show_systray != 1: data = '{"res":"fail, show_systray:%s"}' % show_systray else: config.set(["modules", "launcher", "show_systray"], show_systray) config.save() data = '{"res":"success"}' elif 'auto_start' in reqs: auto_start = int(reqs['auto_start'][0]) if auto_start != 0 and auto_start != 1: data = '{"res":"fail, auto_start:%s"}' % auto_start else: if auto_start: autorun.enable() else: autorun.disable() config.set(["modules", "launcher", "auto_start"], auto_start) config.save() data = '{"res":"success"}' elif 'show_detail' in reqs: show_detail = int(reqs['show_detail'][0]) if show_detail != 0 and show_detail != 1: data = '{"res":"fail, show_detail:%s"}' % show_detail else: config.set(["modules", "gae_proxy", "show_detail"], show_detail) config.save() data = '{"res":"success"}' elif 'gae_proxy_enable' in reqs: gae_proxy_enable = int(reqs['gae_proxy_enable'][0]) if gae_proxy_enable != 0 and gae_proxy_enable != 1: data = '{"res":"fail, gae_proxy_enable:%s"}' % gae_proxy_enable else: config.set(["modules", "gae_proxy", "auto_start"], gae_proxy_enable) config.save() if gae_proxy_enable: module_init.start("gae_proxy") else: module_init.stop("gae_proxy") self.load_module_menus() data = '{"res":"success"}' elif 'php_enable' in reqs: php_enable = int(reqs['php_enable'][0]) if php_enable != 0 and php_enable != 1: data = '{"res":"fail, php_enable:%s"}' % php_enable else: config.set(["modules", "php_proxy", "auto_start"], php_enable) config.save() if php_enable: module_init.start("php_proxy") else: module_init.stop("php_proxy") self.load_module_menus() data = '{"res":"success"}' elif 'x_tunnel_enable' in reqs: x_tunnel_enable = int(reqs['x_tunnel_enable'][0]) if x_tunnel_enable != 0 and x_tunnel_enable != 1: data = '{"res":"fail, x_tunnel_enable:%s"}' % x_tunnel_enable else: config.set(["modules", "x_tunnel", "auto_start"], x_tunnel_enable) config.save() if x_tunnel_enable: module_init.start("x_tunnel") else: module_init.stop("x_tunnel") self.load_module_menus() data = '{"res":"success"}' else: data = '{"res":"fail"}' self.send_response('text/html', data)
def req_config_handler(self): req = urlparse.urlparse(self.path).query reqs = urlparse.parse_qs(req, keep_blank_values=True) data = '' current_version = update_from_github.current_version() if reqs['cmd'] == ['get_config']: config.load() check_update = config.get(["update", "check_update"], 1) if check_update == 0: check_update = "dont-check" elif check_update == 1: check_update = "stable" data = '{ "check_update": "%s", "popup_webui": %d, "allow_remote_connect": %d, "show_systray": %d, "auto_start": %d, "php_enable": %d, "gae_proxy_enable": %d }' %\ (check_update , config.get(["modules", "launcher", "popup_webui"], 1) , config.get(["modules", "launcher", "allow_remote_connect"], 0) , config.get(["modules", "launcher", "show_systray"], 1) , config.get(["modules", "launcher", "auto_start"], 0) , config.get(["modules", "php_proxy", "auto_start"], 0) , config.get(["modules", "gae_proxy", "auto_start"], 0)) elif reqs['cmd'] == ['set_config']: if 'check_update' in reqs: check_update = reqs['check_update'][0] if check_update not in ["dont-check", "stable", "test"]: data = '{"res":"fail, check_update:%s"}' % check_update else: config.set(["update", "check_update"], check_update) config.save() data = '{"res":"success"}' elif 'popup_webui' in reqs: popup_webui = int(reqs['popup_webui'][0]) if popup_webui != 0 and popup_webui != 1: data = '{"res":"fail, popup_webui:%s"}' % popup_webui else: config.set(["modules", "launcher", "popup_webui"], popup_webui) config.save() data = '{"res":"success"}' elif 'allow_remote_connect' in reqs: allow_remote_connect = int(reqs['allow_remote_connect'][0]) if allow_remote_connect != 0 and allow_remote_connect != 1: data = '{"res":"fail, allow_remote_connect:%s"}' % allow_remote_connect else: config.set(["modules", "launcher", "allow_remote_connect"], allow_remote_connect) config.save() data = '{"res":"success"}' xlog.debug("restart web control.") stop() time.sleep(1) start() xlog.debug("launcher web control restarted.") elif 'show_systray' in reqs: show_systray = int(reqs['show_systray'][0]) if show_systray != 0 and show_systray != 1: data = '{"res":"fail, show_systray:%s"}' % show_systray else: config.set(["modules", "launcher", "show_systray"], show_systray) config.save() data = '{"res":"success"}' elif 'auto_start' in reqs: auto_start = int(reqs['auto_start'][0]) if auto_start != 0 and auto_start != 1: data = '{"res":"fail, auto_start:%s"}' % auto_start else: if auto_start: autorun.enable() else: autorun.disable() config.set(["modules", "launcher", "auto_start"], auto_start) config.save() data = '{"res":"success"}' elif 'gae_proxy_enable' in reqs : gae_proxy_enable = int(reqs['gae_proxy_enable'][0]) if gae_proxy_enable != 0 and gae_proxy_enable != 1: data = '{"res":"fail, gae_proxy_enable:%s"}' % gae_proxy_enable else: config.set(["modules", "gae_proxy", "auto_start"], gae_proxy_enable) config.save() if gae_proxy_enable: module_init.start("gae_proxy") else: module_init.stop("gae_proxy") self.load_module_menus() data = '{"res":"success"}' elif 'php_enable' in reqs : php_enable = int(reqs['php_enable'][0]) if php_enable != 0 and php_enable != 1: data = '{"res":"fail, php_enable:%s"}' % php_enable else: config.set(["modules", "php_proxy", "auto_start"], php_enable) config.save() if php_enable: module_init.start("php_proxy") else: module_init.stop("php_proxy") self.load_module_menus() data = '{"res":"success"}' else: data = '{"res":"fail"}' elif reqs['cmd'] == ['get_new_version']: versions = update_from_github.get_github_versions() data = '{"res":"success", "test_version":"%s", "stable_version":"%s", "current_version":"%s"}' % (versions[0][1], versions[1][1], current_version) xlog.info("%s", data) elif reqs['cmd'] == ['update_version']: version = reqs['version'][0] try: update_from_github.update_version(version) data = '{"res":"success"}' except Exception as e: xlog.info("update_test_version fail:%r", e) data = '{"res":"fail", "error":"%s"}' % e self.send_response('text/html', data)
def req_config_handler(self): req = urlparse.urlparse(self.path).query reqs = urlparse.parse_qs(req, keep_blank_values=True) data = '' if reqs['cmd'] == ['get_config']: config.load() data = '{ "check_update": "%d", "popup_webui": %d, "auto_start": %d, "php_enable": %d, "goagent_enable": %d }' %\ (config.get(["update", "check_update"], 1) , config.get(["modules", "launcher", "popup_webui"], 1) , config.get(["modules", "launcher", "auto_start"], 0) , config.get(["modules", "php_proxy", "auto_start"], 0) , config.get(["modules", "goagent", "auto_start"], 0)) elif reqs['cmd'] == ['set_config']: if 'check_update' in reqs: check_update = int(reqs['check_update'][0]) if check_update != 0 and check_update != 1: data = '{"res":"fail, check_update:%s"}' % check_update else: config.set(["update", "check_update"], int(check_update)) config.save() data = '{"res":"success"}' elif 'popup_webui' in reqs : popup_webui = int(reqs['popup_webui'][0]) if popup_webui != 0 and popup_webui != 1: data = '{"res":"fail, popup_webui:%s"}' % popup_webui else: config.set(["modules", "launcher", "popup_webui"], popup_webui) config.save() data = '{"res":"success"}' elif 'auto_start' in reqs : auto_start = int(reqs['auto_start'][0]) if auto_start != 0 and auto_start != 1: data = '{"res":"fail, auto_start:%s"}' % auto_start else: if auto_start: autorun.enable() else: autorun.disable() config.set(["modules", "launcher", "auto_start"], auto_start) config.save() data = '{"res":"success"}' elif 'goagent_enable' in reqs : goagent_enable = int(reqs['goagent_enable'][0]) if goagent_enable != 0 and goagent_enable != 1: data = '{"res":"fail, goagent_enable:%s"}' % goagent_enable else: config.set(["modules", "goagent", "auto_start"], goagent_enable) config.save() if goagent_enable: module_init.start("goagent") else: module_init.stop("goagent") self.load_module_menus() data = '{"res":"success"}' elif 'php_enable' in reqs : php_enable = int(reqs['php_enable'][0]) if php_enable != 0 and php_enable != 1: data = '{"res":"fail, php_enable:%s"}' % php_enable else: config.set(["modules", "php_proxy", "auto_start"], php_enable) config.save() if php_enable: module_init.start("php_proxy") else: module_init.stop("php_proxy") self.load_module_menus() data = '{"res":"success"}' else: data = '{"res":"fail"}' self.send_response('text/html', data)
def req_config_handler(self): req = urlparse.urlparse(self.path).query reqs = urlparse.parse_qs(req, keep_blank_values=True) data = '' if reqs['cmd'] == ['get_config']: config.load() check_update = config.get(["update", "check_update"], "notice-stable") if module_init.xargs.get("allow_remote", 0): allow_remote_connect = 1 else: allow_remote_connect = config.get( ["modules", "launcher", "allow_remote_connect"], 0) dat = { "check_update": check_update, "language": config.get(["language"], i18n_translator.lang), "popup_webui": config.get(["modules", "launcher", "popup_webui"], 1), "allow_remote_connect": allow_remote_connect, "allow_remote_switch": config.get(["modules", "launcher", "allow_remote_connect"], 0), "show_systray": config.get(["modules", "launcher", "show_systray"], 1), "auto_start": config.get(["modules", "launcher", "auto_start"], 0), "show_detail": config.get(["modules", "gae_proxy", "show_detail"], 0), "gae_proxy_enable": config.get(["modules", "gae_proxy", "show_detail"], 0), "x_tunnel_enable": config.get(["modules", "x_tunnel", "auto_start"], 0), "smart_router_enable": config.get(["modules", "smart_router", "auto_start"], 0), "no_mess_system": config.get(["no_mess_system"], 0) } data = json.dumps(dat) if reqs['cmd'] == ['get_version']: current_version = update_from_github.current_version() data = '{"current_version":"%s"}' % (current_version) elif reqs['cmd'] == ['set_config']: if 'skip_version' in reqs: skip_version = reqs['skip_version'][0] skip_version_type = reqs['skip_version_type'][0] if skip_version_type not in ["stable", "test"]: data = '{"res":"fail"}' else: config.set( ["update", "skip_%s_version" % skip_version_type], skip_version) config.save() if skip_version in update_from_github.update_info: update_from_github.update_info = '' data = '{"res":"success"}' elif 'check_update' in reqs: check_update = reqs['check_update'][0] if check_update not in [ "dont-check", "stable", "notice-stable", "test", "notice-test" ]: data = '{"res":"fail, check_update:%s"}' % check_update else: if config.get(["update", "check_update"]) != check_update: update_from_github.init_update_info(check_update) config.set(["update", "check_update"], check_update) config.save() data = '{"res":"success"}' elif 'language' in reqs: language = reqs['language'][0] if language not in i18n_translator.get_valid_languages(): data = '{"res":"fail, language:%s"}' % language else: config.set(["language"], language) config.save() i18n_translator.lang = language self.load_module_menus() data = '{"res":"success"}' elif 'popup_webui' in reqs: popup_webui = int(reqs['popup_webui'][0]) if popup_webui != 0 and popup_webui != 1: data = '{"res":"fail, popup_webui:%s"}' % popup_webui else: config.set(["modules", "launcher", "popup_webui"], popup_webui) config.save() data = '{"res":"success"}' elif 'allow_remote_switch' in reqs: allow_remote_switch = int(reqs['allow_remote_switch'][0]) if allow_remote_switch != 0 and allow_remote_switch != 1: data = '{"res":"fail, allow_remote_connect:%s"}' % allow_remote_switch else: config.set(["modules", "launcher", "allow_remote_connect"], allow_remote_switch) config.save() try: del module_init.xargs["allow_remote"] except: pass if allow_remote_switch: module_init.call_each_module("set_bind_ip", {"ip": "0.0.0.0"}) else: module_init.call_each_module("set_bind_ip", {"ip": "127.0.0.1"}) data = '{"res":"success"}' xlog.debug("restart web control.") stop() module_init.stop_all() time.sleep(1) start() module_init.start_all_auto() xlog.debug("launcher web control restarted.") elif 'show_systray' in reqs: show_systray = int(reqs['show_systray'][0]) if show_systray != 0 and show_systray != 1: data = '{"res":"fail, show_systray:%s"}' % show_systray else: config.set(["modules", "launcher", "show_systray"], show_systray) config.save() data = '{"res":"success"}' elif 'no_mess_system' in reqs: no_mess_system = int(reqs['no_mess_system'][0]) if no_mess_system != 0 and no_mess_system != 1: data = '{"res":"fail, show_systray:%s"}' % no_mess_system else: config.set(["no_mess_system"], no_mess_system) config.save() data = '{"res":"success"}' elif 'auto_start' in reqs: auto_start = int(reqs['auto_start'][0]) if auto_start != 0 and auto_start != 1: data = '{"res":"fail, auto_start:%s"}' % auto_start else: if auto_start: autorun.enable() else: autorun.disable() config.set(["modules", "launcher", "auto_start"], auto_start) config.save() data = '{"res":"success"}' elif 'show_detail' in reqs: show_detail = int(reqs['show_detail'][0]) if show_detail != 0 and show_detail != 1: data = '{"res":"fail, show_detail:%s"}' % show_detail else: config.set(["modules", "gae_proxy", "show_detail"], show_detail) config.save() data = '{"res":"success"}' elif 'gae_proxy_enable' in reqs: gae_proxy_enable = int(reqs['gae_proxy_enable'][0]) if gae_proxy_enable != 0 and gae_proxy_enable != 1: data = '{"res":"fail, gae_proxy_enable:%s"}' % gae_proxy_enable else: config.set(["modules", "gae_proxy", "auto_start"], gae_proxy_enable) config.save() if gae_proxy_enable: module_init.start("gae_proxy") else: module_init.stop("gae_proxy") self.load_module_menus() data = '{"res":"success"}' elif 'x_tunnel_enable' in reqs: x_tunnel_enable = int(reqs['x_tunnel_enable'][0]) if x_tunnel_enable != 0 and x_tunnel_enable != 1: data = '{"res":"fail, x_tunnel_enable:%s"}' % x_tunnel_enable else: config.set(["modules", "x_tunnel", "auto_start"], x_tunnel_enable) config.save() if x_tunnel_enable: module_init.start("x_tunnel") else: module_init.stop("x_tunnel") self.load_module_menus() data = '{"res":"success"}' elif 'smart_router_enable' in reqs: smart_router_enable = int(reqs['smart_router_enable'][0]) if smart_router_enable != 0 and smart_router_enable != 1: data = '{"res":"fail, smart_router_enable:%s"}' % smart_router_enable else: config.set(["modules", "smart_router", "auto_start"], smart_router_enable) config.save() if smart_router_enable: module_init.start("smart_router") else: module_init.stop("smart_router") self.load_module_menus() data = '{"res":"success"}' else: data = '{"res":"fail"}' self.send_response('text/html', data)
def req_config_handler(self): req = urlparse.urlparse(self.path).query reqs = urlparse.parse_qs(req, keep_blank_values=True) data = "" current_version = update_from_github.current_version() if reqs["cmd"] == ["get_config"]: config.load() check_update = config.get(["update", "check_update"], 1) if check_update == 0: check_update = "dont-check" elif check_update == 1: check_update = "long-term-stable" data = ( '{ "check_update": "%s", "popup_webui": %d, "show_systray": %d, "auto_start": %d, "php_enable": %d, "goagent_enable": %d }' % ( check_update, config.get(["modules", "launcher", "popup_webui"], 1), config.get(["modules", "launcher", "show_systray"], 1), config.get(["modules", "launcher", "auto_start"], 0), config.get(["modules", "php_proxy", "auto_start"], 0), config.get(["modules", "goagent", "auto_start"], 0), ) ) elif reqs["cmd"] == ["set_config"]: if "check_update" in reqs: check_update = reqs["check_update"][0] if check_update not in ["dont-check", "long-term-stable", "stable", "test"]: data = '{"res":"fail, check_update:%s"}' % check_update else: config.set(["update", "check_update"], check_update) config.save() data = '{"res":"success"}' elif "popup_webui" in reqs: popup_webui = int(reqs["popup_webui"][0]) if popup_webui != 0 and popup_webui != 1: data = '{"res":"fail, popup_webui:%s"}' % popup_webui else: config.set(["modules", "launcher", "popup_webui"], popup_webui) config.save() data = '{"res":"success"}' elif "show_systray" in reqs: show_systray = int(reqs["show_systray"][0]) if show_systray != 0 and show_systray != 1: data = '{"res":"fail, show_systray:%s"}' % show_systray else: config.set(["modules", "launcher", "show_systray"], show_systray) config.save() data = '{"res":"success"}' elif "auto_start" in reqs: auto_start = int(reqs["auto_start"][0]) if auto_start != 0 and auto_start != 1: data = '{"res":"fail, auto_start:%s"}' % auto_start else: if auto_start: autorun.enable() else: autorun.disable() config.set(["modules", "launcher", "auto_start"], auto_start) config.save() data = '{"res":"success"}' elif "goagent_enable" in reqs: goagent_enable = int(reqs["goagent_enable"][0]) if goagent_enable != 0 and goagent_enable != 1: data = '{"res":"fail, goagent_enable:%s"}' % goagent_enable else: config.set(["modules", "goagent", "auto_start"], goagent_enable) config.save() if goagent_enable: module_init.start("goagent") else: module_init.stop("goagent") self.load_module_menus() data = '{"res":"success"}' elif "php_enable" in reqs: php_enable = int(reqs["php_enable"][0]) if php_enable != 0 and php_enable != 1: data = '{"res":"fail, php_enable:%s"}' % php_enable else: config.set(["modules", "php_proxy", "auto_start"], php_enable) config.save() if php_enable: module_init.start("php_proxy") else: module_init.stop("php_proxy") self.load_module_menus() data = '{"res":"success"}' else: data = '{"res":"fail"}' elif reqs["cmd"] == ["get_new_version"]: versions = update_from_github.get_github_versions() data = '{"res":"success", "test_version":"%s", "stable_version":"%s", "current_version":"%s"}' % ( versions[0][1], versions[1][1], current_version, ) logging.info("%s", data) elif reqs["cmd"] == ["update_version"]: version = reqs["version"][0] try: update_from_github.update_version(version) data = '{"res":"success"}' except Exception as e: logging.info("update_test_version fail:%r", e) data = '{"res":"fail", "error":"%s"}' % e self.send_response("text/html", data)
def req_config_handler(self): req = urlparse(self.path).query reqs = parse_qs(req, keep_blank_values=True) data = '' if reqs['cmd'] == ['get_config']: config.load() data = '{ "popup_webui": %d, "show_systray": %d, "auto_start": %d, "language": "%s", "ossftp_address": "%s", "ossftp_port": %d, "ossftp_loglevel": "%s", "ossftp_bucketendpoints": "%s", "passive_ports_start":%d, "passive_ports_end":%d}' %\ (config.get(["modules", "launcher", "popup_webui"], 1) , config.get(["modules", "launcher", "show_systray"], 1) , config.get(["modules", "launcher", "auto_start"], 0) , config.get(["modules", "launcher", "language"], "cn") , config.get(["modules", "ossftp", "address"], '127.0.0.1') , config.get(["modules", "ossftp", "port"], 2048) , config.get(["modules", "ossftp", "log_level"], 'INFO') , config.get(["modules", "ossftp", "bucket_endpoints"], '') , config.get(["modules", "ossftp", "passive_ports_start"], 51000) , config.get(["modules", "ossftp", "passive_ports_end"], 53000)) elif reqs['cmd'] == ['set_config']: success = True popup_webui = config.get(["modules", "launcher", "popup_webui"], 1) auto_start = config.get(["modules", "launcher", "auto_start"], 0) show_systray = config.get(["modules", "launcher", "show_systray"], 1) language = config.get(["modules", "launcher", "language"], "cn") ossftp_address = config.get(["modules", "ossftp", "address"], "127.0.0.1") ossftp_port = config.get(["modules", "ossftp", "port"], 2048) ossftp_loglevel = config.get(["modules", "ossftp", "log_level"], 'INFO') ossftp_bucketendpoints = config.get( ["modules", "ossftp", "bucket_endpoints"], '') passive_ports_start = config.get( ["modules", "ossftp", "passive_ports_start"], 51000) passive_ports_end = config.get( ["modules", "ossftp", "passive_ports_end"], 53000) data = '{"res":"fail"}' if success and 'language' in reqs: language = reqs['language'][0] if language != 'en' and language != 'cn': success = False data = '{"res":"fail, language:%s"}' % language if success and 'popup_webui' in reqs: popup_webui = int(reqs['popup_webui'][0]) if popup_webui != 0 and popup_webui != 1: success = False data = '{"res":"fail, popup_webui:%s"}' % popup_webui if success and 'show_systray' in reqs: show_systray = int(reqs['show_systray'][0]) if show_systray != 0 and show_systray != 1: success = False data = '{"res":"fail, show_systray:%s"}' % show_systray if success and 'auto_start' in reqs: auto_start = int(reqs['auto_start'][0]) if auto_start != 0 and auto_start != 1: success = False data = '{"res":"fail, auto_start:%s"}' % auto_start if success and 'ossftp_address' in reqs: ossftp_address = reqs['ossftp_address'][0].strip() if not self.ip_check(ossftp_address): success = False data = '{"res":"fail, ilegal ossftp address: %s"}' % ossftp_address if success and 'ossftp_port' in reqs: ossftp_port = int(reqs['ossftp_port'][0]) if ossftp_port < 0: success = False data = '{"res":"fail, ilegal ossftp port: %d"}' % ossftp_port if success and 'ossftp_loglevel' in reqs: ossftp_loglevel = reqs['ossftp_loglevel'][0].strip().upper() if (ossftp_loglevel not in [ 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL' ]): success = False data = '{"res":"fail, illegal ossftp log level: %s. Must be: DEBUG, INFO, WARNING, ERROR, CRITICAL"}' % ossftp_loglevel if success and 'ossftp_bucketendpoints' in reqs: ossftp_bucketendpoints = reqs['ossftp_bucketendpoints'][ 0].strip() if success and 'passive_ports_start' in reqs: passive_ports_start = int(reqs['passive_ports_start'][0]) if passive_ports_end < 0: success = False data = '{"res":"fail, illegal ossftp passive_ports_start: %d"}' % passive_ports_start if success and 'passive_ports_end' in reqs: passive_ports_end = int(reqs['passive_ports_end'][0]) if passive_ports_end < 0: success = False data = '{"res":"fail, illegal ossftp passive_ports_end: %d"}' % passive_ports_end if success: config.set(["modules", "launcher", "popup_webui"], popup_webui) config.set(["modules", "launcher", "show_systray"], show_systray) config.set(["modules", "launcher", "auto_start"], auto_start) config.set(["modules", "launcher", "language"], language) config.set(["modules", "ossftp", "address"], ossftp_address) config.set(["modules", "ossftp", "port"], ossftp_port) config.set(["modules", "ossftp", "log_level"], ossftp_loglevel) config.set(["modules", "ossftp", "bucket_endpoints"], ossftp_bucketendpoints) config.set(["modules", "ossftp", "passive_ports_start"], passive_ports_start) config.set(["modules", "ossftp", "passive_ports_end"], passive_ports_end) config.save() if auto_start: autorun.enable() else: autorun.disable() data = '{"res":"success"}' import copy tmp_config = copy.deepcopy(config.config.copy()) del tmp_config['modules']['accounts'] launcher_log.info( 'Set config: %s', json.dumps(tmp_config, sort_keys=True, separators=(',', ':'), indent=2)) else: launcher_log.error(data) self.send_response('text/html', data)
def req_config_handler(self): req = urlparse.urlparse(self.path).query reqs = urlparse.parse_qs(req, keep_blank_values=True) data = '' if reqs['cmd'] == ['get_config']: config.load() data = '{ "popup_webui": %d, "show_systray": %d, "auto_start": %d, "ossftp_address": "%s", "ossftp_port": %d, "ossftp_loglevel": "%s", "ossftp_bucketendpoints": "%s" }' %\ (config.get(["modules", "launcher", "popup_webui"], 1) , config.get(["modules", "launcher", "show_systray"], 1) , config.get(["modules", "launcher", "auto_start"], 0) , config.get(["modules", "ossftp", "address"], '127.0.0.1') , config.get(["modules", "ossftp", "port"], 2048) , config.get(["modules", "ossftp", "log_level"], 'INFO') , config.get(["modules", "ossftp", "bucket_endpoints"], '')) elif reqs['cmd'] == ['set_config']: success = True popup_webui = config.get(["modules", "launcher", "popup_webui"], 1) auto_start = config.get(["modules", "launcher", "auto_start"], 0) show_systray = config.get(["modules", "launcher", "show_systray"], 1) ossftp_address = config.get(["modules", "ossftp", "address"], "127.0.0.1") ossftp_port = config.get(["modules", "ossftp", "port"], 2048) ossftp_loglevel = config.get(["modules", "ossftp", "log_level"], 'INFO') ossftp_bucketendpoints = config.get(["modules", "ossftp", "bucket_endpoints"], '') data = '{"res":"fail"}' if success and 'popup_webui' in reqs : popup_webui = int(reqs['popup_webui'][0]) if popup_webui != 0 and popup_webui != 1: success = False data = '{"res":"fail, popup_webui:%s"}' % popup_webui if success and 'show_systray' in reqs : show_systray = int(reqs['show_systray'][0]) if show_systray != 0 and show_systray != 1: success = False data = '{"res":"fail, show_systray:%s"}' % show_systray if success and 'auto_start' in reqs : auto_start = int(reqs['auto_start'][0]) if auto_start != 0 and auto_start != 1: success = False data = '{"res":"fail, auto_start:%s"}' % auto_start if success and 'ossftp_address' in reqs: ossftp_address = reqs['ossftp_address'][0].strip() if not self.ip_check(ossftp_address): success = False data = '{"res":"fail, ilegal ossftp address: %s"}' % ossftp_address if success and 'ossftp_port' in reqs: ossftp_port = int(reqs['ossftp_port'][0]) if ossftp_port < 0: success = False data = '{"res":"fail, ilegal ossftp port: %d"}' % ossftp_port if success and 'ossftp_loglevel' in reqs: ossftp_loglevel = reqs['ossftp_loglevel'][0].strip().upper() if (ossftp_loglevel not in ['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL']): success = False data = '{"res":"fail, illegal ossftp log level: %s. Must be: DEBUG, INFO, WARNING, ERROR, CRITICAL"}' % ossftp_loglevel if success and 'ossftp_bucketendpoints' in reqs: ossftp_bucketendpoints = reqs['ossftp_bucketendpoints'][0].strip() if success: config.set(["modules", "launcher", "popup_webui"], popup_webui) config.set(["modules", "launcher", "show_systray"], show_systray) config.set(["modules", "launcher", "auto_start"], auto_start) config.set(["modules", "ossftp", "address"], ossftp_address) config.set(["modules", "ossftp", "port"], ossftp_port) config.set(["modules", "ossftp", "log_level"], ossftp_loglevel) config.set(["modules", "ossftp", "bucket_endpoints"], ossftp_bucketendpoints) config.save() if auto_start: autorun.enable() else: autorun.disable() data = '{"res":"success"}' launcher_log.info('Set config: %s', json.dumps(config.config, sort_keys=True, separators=(',',':'), indent=2)) else: launcher_log.error(data) self.send_response('text/html', data)
def req_config_handler(self): req = urlparse.urlparse(self.path).query reqs = urlparse.parse_qs(req, keep_blank_values=True) data = '' if reqs['cmd'] == ['get_config']: config.load() if module_init.xargs.get("allow_remote", 0): allow_remote_connect = 1 else: allow_remote_connect = config.get(["modules", "launcher", "allow_remote_connect"], 0) dat = { "check_update": config.get(["update", "check_update"], "notice-stable"), "language": config.get(["language"], i18n_translator.lang), "popup_webui": config.get(["modules", "launcher", "popup_webui"], 1), "allow_remote_connect": allow_remote_connect, "allow_remote_switch": config.get(["modules", "launcher", "allow_remote_connect"], 0), "show_systray": config.get(["modules", "launcher", "show_systray"], 1), "auto_start": config.get(["modules", "launcher", "auto_start"], 0), "show_detail": config.get(["modules", "gae_proxy", "show_detail"], 0), "gae_proxy_enable": config.get(["modules", "gae_proxy", "auto_start"], 0), "x_tunnel_enable": config.get(["modules", "x_tunnel", "auto_start"], 0), "smart_router_enable": config.get(["modules", "smart_router", "auto_start"], 0), "system-proxy": config.get(["modules", "launcher", "proxy"], "smart_router"), "show-compat-suggest": config.get(["show_compat_suggest"], 1), "no_mess_system": config.get(["no_mess_system"], 0), "keep_old_ver_num": config.get(["modules", "launcher", "keep_old_ver_num"], -1), # -1 means not set yet "postUpdateStat": config.get(["update", "postUpdateStat"], "noChange"), } data = json.dumps(dat) elif reqs['cmd'] == ['set_config']: if 'skip_version' in reqs: skip_version = reqs['skip_version'][0] skip_version_type = reqs['skip_version_type'][0] if skip_version_type not in ["stable", "test"]: data = '{"res":"fail"}' else: config.set(["update", "skip_%s_version" % skip_version_type], skip_version) config.save() if skip_version in update_from_github.update_info: update_from_github.update_info = '' data = '{"res":"success"}' elif 'check_update' in reqs: check_update = reqs['check_update'][0] if check_update not in ["dont-check", "stable", "notice-stable", "test", "notice-test"]: data = '{"res":"fail, check_update:%s"}' % check_update else: if config.get(["update", "check_update"]) != check_update: update_from_github.init_update_info(check_update) config.set(["update", "check_update"], check_update) config.save() data = '{"res":"success"}' elif 'language' in reqs: language = reqs['language'][0] if language not in i18n_translator.get_valid_languages(): data = '{"res":"fail, language:%s"}' % language else: config.set(["language"], language) config.save() i18n_translator.lang = language self.load_module_menus() data = '{"res":"success"}' elif 'popup_webui' in reqs: popup_webui = int(reqs['popup_webui'][0]) if popup_webui != 0 and popup_webui != 1: data = '{"res":"fail, popup_webui:%s"}' % popup_webui else: config.set(["modules", "launcher", "popup_webui"], popup_webui) config.save() data = '{"res":"success"}' elif 'allow_remote_switch' in reqs: allow_remote_switch = int(reqs['allow_remote_switch'][0]) if allow_remote_switch != 0 and allow_remote_switch != 1: data = '{"res":"fail, allow_remote_connect:%s"}' % allow_remote_switch else: config.set(["modules", "launcher", "allow_remote_connect"], allow_remote_switch) config.save() try: del module_init.xargs["allow_remote"] except: pass if allow_remote_switch: module_init.call_each_module("set_bind_ip", { "ip": "0.0.0.0" }) else: module_init.call_each_module("set_bind_ip", { "ip": "127.0.0.1" }) data = '{"res":"success"}' xlog.debug("restart web control.") stop() module_init.stop_all() time.sleep(1) start() module_init.start_all_auto() xlog.debug("launcher web control restarted.") elif 'show_systray' in reqs: show_systray = int(reqs['show_systray'][0]) if show_systray != 0 and show_systray != 1: data = '{"res":"fail, show_systray:%s"}' % show_systray else: config.set(["modules", "launcher", "show_systray"], show_systray) config.save() data = '{"res":"success"}' elif 'show_compat_suggest' in reqs: show_compat_suggest = int(reqs['show_compat_suggest'][0]) if show_compat_suggest != 0 and show_compat_suggest != 1: data = '{"res":"fail, show_compat_suggest:%s"}' % show_compat_suggest else: config.set(["show_compat_suggest"], show_compat_suggest) config.save() data = '{"res":"success"}' elif 'no_mess_system' in reqs: no_mess_system = int(reqs['no_mess_system'][0]) if no_mess_system != 0 and no_mess_system != 1: data = '{"res":"fail, no_mess_system:%s"}' % no_mess_system else: config.set(["no_mess_system"], no_mess_system) config.save() data = '{"res":"success"}' elif 'keep_old_ver_num' in reqs: keep_old_ver_num = int(reqs['keep_old_ver_num'][0]) if keep_old_ver_num < 0 or keep_old_ver_num > 99: data = '{"res":"fail, keep_old_ver_num:%s not in range 0 to 99"}' % keep_old_ver_num else: config.set(["modules", "launcher", "keep_old_ver_num"], keep_old_ver_num) config.save() data = '{"res":"success"}' elif 'auto_start' in reqs: auto_start = int(reqs['auto_start'][0]) if auto_start != 0 and auto_start != 1: data = '{"res":"fail, auto_start:%s"}' % auto_start else: if auto_start: autorun.enable() else: autorun.disable() config.set(["modules", "launcher", "auto_start"], auto_start) config.save() data = '{"res":"success"}' elif 'show_detail' in reqs: show_detail = int(reqs['show_detail'][0]) if show_detail != 0 and show_detail != 1: data = '{"res":"fail, show_detail:%s"}' % show_detail else: config.set(["modules", "gae_proxy", "show_detail"], show_detail) config.save() data = '{"res":"success"}' elif 'gae_proxy_enable' in reqs: gae_proxy_enable = int(reqs['gae_proxy_enable'][0]) if gae_proxy_enable != 0 and gae_proxy_enable != 1: data = '{"res":"fail, gae_proxy_enable:%s"}' % gae_proxy_enable else: config.set(["modules", "gae_proxy", "auto_start"], gae_proxy_enable) config.save() if gae_proxy_enable: module_init.start("gae_proxy") else: module_init.stop("gae_proxy") self.load_module_menus() data = '{"res":"success"}' elif 'x_tunnel_enable' in reqs: x_tunnel_enable = int(reqs['x_tunnel_enable'][0]) if x_tunnel_enable != 0 and x_tunnel_enable != 1: data = '{"res":"fail, x_tunnel_enable:%s"}' % x_tunnel_enable else: config.set(["modules", "x_tunnel", "auto_start"], x_tunnel_enable) config.save() if x_tunnel_enable: module_init.start("x_tunnel") else: module_init.stop("x_tunnel") self.load_module_menus() data = '{"res":"success"}' elif 'smart_router_enable' in reqs: smart_router_enable = int(reqs['smart_router_enable'][0]) if smart_router_enable != 0 and smart_router_enable != 1: data = '{"res":"fail, smart_router_enable:%s"}' % smart_router_enable else: config.set(["modules", "smart_router", "auto_start"], smart_router_enable) config.save() if smart_router_enable: module_init.start("smart_router") else: module_init.stop("smart_router") self.load_module_menus() data = '{"res":"success"}' elif 'postUpdateStat' in reqs: postUpdateStat = reqs['postUpdateStat'][0] if postUpdateStat not in ["noChange", "isNew", "isPostUpdate"]: data = '{"res":"fail, postUpdateStat:%s"}' % postUpdateStat else: config.set(["update", "postUpdateStat"], postUpdateStat) config.save() data = '{"res":"success"}' else: data = '{"res":"fail"}' elif reqs['cmd'] == ['get_version']: current_version = update_from_github.current_version() data = '{"current_version":"%s"}' % current_version self.send_response('text/html', data)
def req_config_handler(self): req = urlparse.urlparse(self.path).query reqs = urlparse.parse_qs(req, keep_blank_values=True) data = '' if reqs['cmd'] == ['get_config']: config.load() check_update = config.get(["update", "check_update"], 1) if check_update == 0: check_update = "dont-check" elif check_update == 1: check_update = "stable" data = '{ "check_update": "%s", "language": "%s", "popup_webui": %d, "allow_remote_connect": %d, \ "show_systray": %d, "auto_start": %d, "show_detail": %d, "php_enable": %d, "gae_proxy_enable": %d, \ "x_tunnel_enable": %d}' %\ (check_update , config.get(["language"], i18n_translator.lang) , config.get(["modules", "launcher", "popup_webui"], 1) , config.get(["modules", "launcher", "allow_remote_connect"], 0) , config.get(["modules", "launcher", "show_systray"], 1) , config.get(["modules", "launcher", "auto_start"], 0) , config.get(["modules", "gae_proxy", "show_detail"], 0) , config.get(["modules", "php_proxy", "auto_start"], 0) , config.get(["modules", "gae_proxy", "auto_start"], 0) , config.get(["modules", "x_tunnel", "auto_start"], 0) ) elif reqs['cmd'] == ['set_config']: if 'check_update' in reqs: check_update = reqs['check_update'][0] if check_update not in ["dont-check", "stable", "test"]: data = '{"res":"fail, check_update:%s"}' % check_update else: config.set(["update", "check_update"], check_update) config.save() data = '{"res":"success"}' elif 'language' in reqs: language = reqs['language'][0] if language not in i18n_translator.get_valid_languages(): data = '{"res":"fail, language:%s"}' % language else: config.set(["language"], language) config.save() i18n_translator.lang = language self.load_module_menus() data = '{"res":"success"}' elif 'popup_webui' in reqs: popup_webui = int(reqs['popup_webui'][0]) if popup_webui != 0 and popup_webui != 1: data = '{"res":"fail, popup_webui:%s"}' % popup_webui else: config.set(["modules", "launcher", "popup_webui"], popup_webui) config.save() data = '{"res":"success"}' elif 'allow_remote_connect' in reqs: allow_remote_connect = int(reqs['allow_remote_connect'][0]) if allow_remote_connect != 0 and allow_remote_connect != 1: data = '{"res":"fail, allow_remote_connect:%s"}' % allow_remote_connect else: config.set(["modules", "launcher", "allow_remote_connect"], allow_remote_connect) config.save() data = '{"res":"success"}' xlog.debug("restart web control.") stop() time.sleep(1) start() xlog.debug("launcher web control restarted.") elif 'show_systray' in reqs: show_systray = int(reqs['show_systray'][0]) if show_systray != 0 and show_systray != 1: data = '{"res":"fail, show_systray:%s"}' % show_systray else: config.set(["modules", "launcher", "show_systray"], show_systray) config.save() data = '{"res":"success"}' elif 'auto_start' in reqs: auto_start = int(reqs['auto_start'][0]) if auto_start != 0 and auto_start != 1: data = '{"res":"fail, auto_start:%s"}' % auto_start else: if auto_start: autorun.enable() else: autorun.disable() config.set(["modules", "launcher", "auto_start"], auto_start) config.save() data = '{"res":"success"}' elif 'show_detail' in reqs: show_detail = int(reqs['show_detail'][0]) if show_detail != 0 and show_detail != 1: data = '{"res":"fail, show_detail:%s"}' % show_detail else: config.set(["modules", "gae_proxy", "show_detail"], show_detail) config.save() data = '{"res":"success"}' elif 'gae_proxy_enable' in reqs : gae_proxy_enable = int(reqs['gae_proxy_enable'][0]) if gae_proxy_enable != 0 and gae_proxy_enable != 1: data = '{"res":"fail, gae_proxy_enable:%s"}' % gae_proxy_enable else: config.set(["modules", "gae_proxy", "auto_start"], gae_proxy_enable) config.save() if gae_proxy_enable: module_init.start("gae_proxy") else: module_init.stop("gae_proxy") self.load_module_menus() data = '{"res":"success"}' elif 'php_enable' in reqs : php_enable = int(reqs['php_enable'][0]) if php_enable != 0 and php_enable != 1: data = '{"res":"fail, php_enable:%s"}' % php_enable else: config.set(["modules", "php_proxy", "auto_start"], php_enable) config.save() if php_enable: module_init.start("php_proxy") else: module_init.stop("php_proxy") self.load_module_menus() data = '{"res":"success"}' elif 'x_tunnel_enable' in reqs : x_tunnel_enable = int(reqs['x_tunnel_enable'][0]) if x_tunnel_enable != 0 and x_tunnel_enable != 1: data = '{"res":"fail, x_tunnel_enable:%s"}' % x_tunnel_enable else: config.set(["modules", "x_tunnel", "auto_start"], x_tunnel_enable) config.save() if x_tunnel_enable: module_init.start("x_tunnel") else: module_init.stop("x_tunnel") self.load_module_menus() data = '{"res":"success"}' else: data = '{"res":"fail"}' self.send_response('text/html', data)
def req_config_handler(self): req = urlparse(self.path).query reqs = parse_qs(req, keep_blank_values=True) data = '' if reqs['cmd'] == ['get_config']: if module_init.xargs.get("allow_remote", 0): allow_remote_connect = 1 else: allow_remote_connect = config.allow_remote_connect dat = { "check_update": config.check_update, "language": config.language or i18n_translator.lang, "popup_webui": config.popup_webui, "allow_remote_connect": allow_remote_connect, "allow_remote_switch": config.allow_remote_connect, "show_systray": config.show_systray, "auto_start": config.auto_start, "show_detail": config.gae_show_detail, "gae_proxy_enable": config.enable_gae_proxy, "x_tunnel_enable": config.enable_x_tunnel, "smart_router_enable": config.enable_smart_router, "system-proxy": config.os_proxy_mode, "show-compat-suggest": config.show_compat_suggest, "no_mess_system": config.no_mess_system, "keep_old_ver_num": config.keep_old_ver_num, "postUpdateStat": config.postUpdateStat, } data = json.dumps(dat) elif reqs['cmd'] == ['set_config']: if 'skip_version' in reqs: skip_version = reqs['skip_version'][0] skip_version_type = reqs['skip_version_type'][0] if skip_version_type not in ["stable", "test"]: data = '{"res":"fail"}' else: setattr(config, "skip_%s_version" % skip_version_type, skip_version) config.save() if skip_version in update_from_github.update_info: update_from_github.update_info = '' data = '{"res":"success"}' elif 'check_update' in reqs: check_update = reqs['check_update'][0] if check_update not in [ "dont-check", "stable", "notice-stable", "test", "notice-test" ]: data = '{"res":"fail, check_update:%s"}' % check_update else: if config.check_update != check_update: update_from_github.init_update_info(check_update) config.check_update = check_update config.save() data = '{"res":"success"}' elif 'language' in reqs: language = reqs['language'][0] if language not in valid_language: data = '{"res":"fail, language:%s"}' % language else: config.language = language config.save() i18n_translator.lang = language self.load_module_menus() data = '{"res":"success"}' elif 'popup_webui' in reqs: popup_webui = int(reqs['popup_webui'][0]) if popup_webui != 0 and popup_webui != 1: data = '{"res":"fail, popup_webui:%s"}' % popup_webui else: config.popup_webui = popup_webui config.save() data = '{"res":"success"}' elif 'allow_remote_switch' in reqs: allow_remote_switch = int(reqs['allow_remote_switch'][0]) if allow_remote_switch != 0 and allow_remote_switch != 1: data = '{"res":"fail, allow_remote_connect:%s"}' % allow_remote_switch else: try: del module_init.xargs["allow_remote"] except: pass if allow_remote_switch: module_init.call_each_module("set_bind_ip", {"ip": "0.0.0.0"}) else: module_init.call_each_module("set_bind_ip", {"ip": "127.0.0.1"}) config.allow_remote_connect = allow_remote_switch config.save() xlog.debug("restart web control.") stop() module_init.stop_all() time.sleep(1) start(allow_remote_switch) module_init.start_all_auto() xlog.debug("launcher web control restarted.") data = '{"res":"success"}' elif 'show_systray' in reqs: show_systray = int(reqs['show_systray'][0]) if show_systray != 0 and show_systray != 1: data = '{"res":"fail, show_systray:%s"}' % show_systray else: config.show_systray = show_systray config.save() data = '{"res":"success"}' elif 'show_compat_suggest' in reqs: show_compat_suggest = int(reqs['show_compat_suggest'][0]) if show_compat_suggest != 0 and show_compat_suggest != 1: data = '{"res":"fail, show_compat_suggest:%s"}' % show_compat_suggest else: config.show_compat_suggest = show_compat_suggest config.save() data = '{"res":"success"}' elif 'no_mess_system' in reqs: no_mess_system = int(reqs['no_mess_system'][0]) if no_mess_system != 0 and no_mess_system != 1: data = '{"res":"fail, no_mess_system:%s"}' % no_mess_system else: config.no_mess_system = no_mess_system config.save() data = '{"res":"success"}' elif 'keep_old_ver_num' in reqs: keep_old_ver_num = int(reqs['keep_old_ver_num'][0]) if keep_old_ver_num < 0 or keep_old_ver_num > 99: data = '{"res":"fail, keep_old_ver_num:%s not in range 0 to 99"}' % keep_old_ver_num else: config.keep_old_ver_num = keep_old_ver_num config.save() data = '{"res":"success"}' elif 'auto_start' in reqs: auto_start = int(reqs['auto_start'][0]) if auto_start != 0 and auto_start != 1: data = '{"res":"fail, auto_start:%s"}' % auto_start else: if auto_start: autorun.enable() else: autorun.disable() config.auto_start = auto_start config.save() data = '{"res":"success"}' elif 'show_detail' in reqs: show_detail = int(reqs['show_detail'][0]) if show_detail != 0 and show_detail != 1: data = '{"res":"fail, show_detail:%s"}' % show_detail else: config.gae_show_detail = show_detail config.save() data = '{"res":"success"}' elif 'gae_proxy_enable' in reqs: gae_proxy_enable = int(reqs['gae_proxy_enable'][0]) if gae_proxy_enable != 0 and gae_proxy_enable != 1: data = '{"res":"fail, gae_proxy_enable:%s"}' % gae_proxy_enable else: config.enable_gae_proxy = gae_proxy_enable config.save() if gae_proxy_enable: module_init.start("gae_proxy") else: module_init.stop("gae_proxy") self.load_module_menus() data = '{"res":"success"}' elif 'x_tunnel_enable' in reqs: x_tunnel_enable = int(reqs['x_tunnel_enable'][0]) if x_tunnel_enable != 0 and x_tunnel_enable != 1: data = '{"res":"fail, x_tunnel_enable:%s"}' % x_tunnel_enable else: config.enable_x_tunnel = x_tunnel_enable config.save() if x_tunnel_enable: module_init.start("x_tunnel") else: module_init.stop("x_tunnel") self.load_module_menus() data = '{"res":"success"}' elif 'smart_router_enable' in reqs: smart_router_enable = int(reqs['smart_router_enable'][0]) if smart_router_enable != 0 and smart_router_enable != 1: data = '{"res":"fail, smart_router_enable:%s"}' % smart_router_enable else: config.enable_smart_router = smart_router_enable config.save() if smart_router_enable: module_init.start("smart_router") else: module_init.stop("smart_router") self.load_module_menus() data = '{"res":"success"}' elif 'postUpdateStat' in reqs: postUpdateStat = reqs['postUpdateStat'][0] if postUpdateStat not in ["noChange", "isNew", "isPostUpdate"]: data = '{"res":"fail, postUpdateStat:%s"}' % postUpdateStat else: config.postUpdateStat = postUpdateStat config.save() data = '{"res":"success"}' else: data = '{"res":"fail"}' elif reqs['cmd'] == ['get_version']: current_version = update_from_github.current_version() data = '{"current_version":"%s"}' % current_version self.send_response('text/html', data)
def req_config_handler(self): req = urlparse.urlparse(self.path).query reqs = urlparse.parse_qs(req, keep_blank_values=True) data = '' current_version = update_from_github.current_version() if reqs['cmd'] == ['get_config']: config.load() check_update = config.get(["update", "check_update"], 1) if check_update == 0: check_update = "dont-check" elif check_update == 1: check_update = "long-term-stable" data = '{ "check_update": "%s", "popup_webui": %d, "allow_remote_connect": %d, "show_systray": %d, "auto_start": %d, "php_enable": %d, "gae_proxy_enable": %d }' %\ (check_update , config.get(["modules", "launcher", "popup_webui"], 1) , config.get(["modules", "launcher", "allow_remote_connect"], 0) , config.get(["modules", "launcher", "show_systray"], 1) , config.get(["modules", "launcher", "auto_start"], 0) , config.get(["modules", "php_proxy", "auto_start"], 0) , config.get(["modules", "gae_proxy", "auto_start"], 0)) elif reqs['cmd'] == ['set_config']: if 'check_update' in reqs: check_update = reqs['check_update'][0] if check_update not in ["dont-check", "long-term-stable", "stable", "test"]: data = '{"res":"fail, check_update:%s"}' % check_update else: config.set(["update", "check_update"], check_update) config.save() data = '{"res":"success"}' elif 'popup_webui' in reqs: popup_webui = int(reqs['popup_webui'][0]) if popup_webui != 0 and popup_webui != 1: data = '{"res":"fail, popup_webui:%s"}' % popup_webui else: config.set(["modules", "launcher", "popup_webui"], popup_webui) config.save() data = '{"res":"success"}' elif 'allow_remote_connect' in reqs: allow_remote_connect = int(reqs['allow_remote_connect'][0]) if allow_remote_connect != 0 and allow_remote_connect != 1: data = '{"res":"fail, allow_remote_connect:%s"}' % allow_remote_connect else: config.set(["modules", "launcher", "allow_remote_connect"], allow_remote_connect) config.save() data = '{"res":"success"}' launcher_log.debug("restart web control.") stop() time.sleep(1) start() launcher_log.debug("launcher web control restarted.") elif 'show_systray' in reqs: show_systray = int(reqs['show_systray'][0]) if show_systray != 0 and show_systray != 1: data = '{"res":"fail, show_systray:%s"}' % show_systray else: config.set(["modules", "launcher", "show_systray"], show_systray) config.save() data = '{"res":"success"}' elif 'auto_start' in reqs: auto_start = int(reqs['auto_start'][0]) if auto_start != 0 and auto_start != 1: data = '{"res":"fail, auto_start:%s"}' % auto_start else: if auto_start: autorun.enable() else: autorun.disable() config.set(["modules", "launcher", "auto_start"], auto_start) config.save() data = '{"res":"success"}' elif 'gae_proxy_enable' in reqs : gae_proxy_enable = int(reqs['gae_proxy_enable'][0]) if gae_proxy_enable != 0 and gae_proxy_enable != 1: data = '{"res":"fail, gae_proxy_enable:%s"}' % gae_proxy_enable else: config.set(["modules", "gae_proxy", "auto_start"], gae_proxy_enable) config.save() if gae_proxy_enable: module_init.start("gae_proxy") else: module_init.stop("gae_proxy") self.load_module_menus() data = '{"res":"success"}' elif 'php_enable' in reqs : php_enable = int(reqs['php_enable'][0]) if php_enable != 0 and php_enable != 1: data = '{"res":"fail, php_enable:%s"}' % php_enable else: config.set(["modules", "php_proxy", "auto_start"], php_enable) config.save() if php_enable: module_init.start("php_proxy") else: module_init.stop("php_proxy") self.load_module_menus() data = '{"res":"success"}' else: data = '{"res":"fail"}' elif reqs['cmd'] == ['get_new_version']: versions = update_from_github.get_github_versions() data = '{"res":"success", "test_version":"%s", "stable_version":"%s", "current_version":"%s"}' % (versions[0][1], versions[1][1], current_version) launcher_log.info("%s", data) elif reqs['cmd'] == ['update_version']: version = reqs['version'][0] try: update_from_github.update_version(version) data = '{"res":"success"}' except Exception as e: launcher_log.info("update_test_version fail:%r", e) data = '{"res":"fail", "error":"%s"}' % e self.send_response('text/html', data)
def req_config_handler(self): req = urlparse.urlparse(self.path).query reqs = urlparse.parse_qs(req, keep_blank_values=True) data = '' current_version = update_from_github.current_version() if reqs['cmd'] == ['get_config']: config.load() check_update = config.get(["update", "check_update"], 1) if check_update == 0: check_update = "dont-check" elif check_update == 1: check_update = "long-term-stable" data = '{ "check_update": "%s", "popup_webui": %d, "auto_start": %d, "php_enable": %d, "goagent_enable": %d }' %\ (check_update , config.get(["modules", "launcher", "popup_webui"], 1) , config.get(["modules", "launcher", "auto_start"], 0) , config.get(["modules", "php_proxy", "auto_start"], 0) , config.get(["modules", "goagent", "auto_start"], 0)) elif reqs['cmd'] == ['set_config']: if 'check_update' in reqs: check_update = reqs['check_update'][0] if check_update not in ["dont-check", "long-term-stable", "stable", "test"]: data = '{"res":"fail, check_update:%s"}' % check_update else: config.set(["update", "check_update"], check_update) config.save() data = '{"res":"success"}' elif 'popup_webui' in reqs : popup_webui = int(reqs['popup_webui'][0]) if popup_webui != 0 and popup_webui != 1: data = '{"res":"fail, popup_webui:%s"}' % popup_webui else: config.set(["modules", "launcher", "popup_webui"], popup_webui) config.save() data = '{"res":"success"}' elif 'auto_start' in reqs : auto_start = int(reqs['auto_start'][0]) if auto_start != 0 and auto_start != 1: data = '{"res":"fail, auto_start:%s"}' % auto_start else: if auto_start: autorun.enable() else: autorun.disable() config.set(["modules", "launcher", "auto_start"], auto_start) config.save() data = '{"res":"success"}' elif 'goagent_enable' in reqs : goagent_enable = int(reqs['goagent_enable'][0]) if goagent_enable != 0 and goagent_enable != 1: data = '{"res":"fail, goagent_enable:%s"}' % goagent_enable else: config.set(["modules", "goagent", "auto_start"], goagent_enable) config.save() if goagent_enable: module_init.start("goagent") else: module_init.stop("goagent") self.load_module_menus() data = '{"res":"success"}' elif 'php_enable' in reqs : php_enable = int(reqs['php_enable'][0]) if php_enable != 0 and php_enable != 1: data = '{"res":"fail, php_enable:%s"}' % php_enable else: config.set(["modules", "php_proxy", "auto_start"], php_enable) config.save() if php_enable: module_init.start("php_proxy") else: module_init.stop("php_proxy") self.load_module_menus() data = '{"res":"success"}' else: data = '{"res":"fail"}' elif reqs['cmd'] == ['get_new_version']: versions = update_from_github.get_github_versions() data = '{"res":"success", "test_version":"%s", "stable_version":"%s", "current_version":"%s"}' % (versions[0][1], versions[1][1], current_version) logging.info("%s", data) elif reqs['cmd'] == ['update_version']: version = reqs['version'][0] try: update_from_github.update_version(version) data = '{"res":"success"}' except Exception as e: logging.info("update_test_version fail:%r", e) data = '{"res":"fail", "error":"%s"}' % e self.send_response('text/html', data)