def setup(): if (len(sys.argv) > 1) and sys.argv[1] == "cli": try: import telnetlib3 except: print("Please run 'pip install telnetlib3' to use remote CLI") ConfigUtil.save() exit(0) try: import telnetlib3 import asyncio from util.RemoteCliHandler import RemoteCliHandler port = 8888 if (len(sys.argv) > 2): port = int(sys.argv[2]) print("Running in remote CLI Mode on port {0}".format(port)) print("Access by 'telnet {0} {1}'".format(RemoteCliHandler.get_ip(), port)) print("Press Ctrl-C to stop the server") loop = asyncio.get_event_loop() coro = telnetlib3.create_server(port=port, shell=RemoteCliHandler.shell) server = loop.run_until_complete(coro) loop.run_until_complete(server.wait_closed()) exit(0) except KeyboardInterrupt: exit(0) except Exception as e: print(str(e)) exit(-1)
def startWithCli(): if not "html-text" in sys.modules: import html_text # Cli input #config.mainWindow.hide() #config.cli = True #config.printContentOnConsole = printContentOnConsole config.bibleWindowContentTransformers.append(printContentOnConsole) config.studyWindowContentTransformers.append(printContentOnConsole) while config.cli: print("--------------------") print("Enter '.bible' to read bible text, '.study' to read study resource, '.help' to read UBA command reference, '.gui' to launch gui, '.quit' to quit,") command = input("or UBA command: ").strip() if command == ".gui": del config.bibleWindowContentTransformers[-1] del config.studyWindowContentTransformers[-1] config.cli = False elif command == ".bible": print(html_text.extract_text(config.bibleWindowContent)) # The following line does not work on Windows on UBA startup #config.mainWindow.mainPage.runJavaScript("document.documentElement.outerHTML", 0, printContentOnConsole) elif command == ".study": print(html_text.extract_text(config.studyWindowContent)) # The following line does not work on Windows on UBA startup #config.mainWindow.studyPage.runJavaScript("document.documentElement.outerHTML", 0, printContentOnConsole) elif command in (".help", ".command"): getCommandDocumentation() elif command == ".quit": ConfigUtil.save() exit() else: config.mainWindow.runTextCommand(command) config.mainWindow.show() if platform.system() == "Windows": config.mainWindow.showMaximized()
def exitApplication(): config.mainWindow.textCommandParser.stopTtsAudio() # Run shutdown plugins if config.enablePlugins: for plugin in FileUtil.fileNamesWithoutExtension(os.path.join("plugins", "shutdown"), "py"): if not plugin in config.excludeShutdownPlugins: script = os.path.join(os.getcwd(), "plugins", "shutdown", "{0}.py".format(plugin)) config.mainWindow.execPythonFile(script) ConfigUtil.save() if config.restartUBA and hasattr(config, "cli"): subprocess.Popen("{0} uba.py gui".format(sys.executable), shell=True)
def exitApplication(): config.mainWindow.textCommandParser.stopTtsAudio() # Run shutdown plugins if config.enablePlugins: for plugin in FileUtil.fileNamesWithoutExtension( os.path.join("plugins", "shutdown"), "py"): if not plugin in config.excludeShutdownPlugins: script = os.path.join(os.getcwd(), "plugins", "shutdown", "{0}.py".format(plugin)) config.mainWindow.execPythonFile(script) ConfigUtil.save()
try: import telnetlib3 import asyncio from util.RemoteCliHandler import RemoteCliHandler port = config.telnetServerPort if (len(sys.argv) > 2): port = int(sys.argv[2]) print("Running in remote CLI Mode on port {0}".format(port)) print("Access by 'telnet {0} {1}'".format(NetworkUtil.get_ip(), port)) print("Press Ctrl-C to stop the server") loop = asyncio.get_event_loop() coro = telnetlib3.create_server(port=port, shell=RemoteCliHandler.shell) server = loop.run_until_complete(coro) loop.run_until_complete(server.wait_closed()) ConfigUtil.save() exit(0) except KeyboardInterrupt: ConfigUtil.save() exit(0) except Exception as e: print(str(e)) exit(-1) # Run startup plugins def runStartupPlugins(): if config.enablePlugins: for plugin in FileUtil.fileNamesWithoutExtension(os.path.join("plugins", "startup"), "py"): if not plugin in config.excludeStartupPlugins: script = os.path.join(os.getcwd(), "plugins", "startup", "{0}.py".format(plugin)) config.mainWindow.execPythonFile(script)