class doc: def __init__(self, username="******", plugin=False, live_debug=False): start = time.time() self.debug = debug(live_debug=live_debug) self.debug.addEvent("Starting DOC...", "SYSTEM") self.debug.addEvent("Create Variables...", "SYSTEM") # init names self.username = username self.user = "******" + self.username self.plugin = "PLUGIN" self.consoleGeneral = "CONSOLE" self.system = "SYSTEM" self.consoleGeneral = "CONSOLE" self.consoleInput = "CONSOLE IN" self.consoleOutput = "CONSOLE OUT" self.installed = [] instance = self self.debug.addEvent("Create Variables...Finished", self.system) self.debug.addEvent("Listener Build...", self.system) self.Listener = Listener() self.Listener.ConsoleStart() self.debug.addEvent("Listener Build... Finished", self.system) self.debug.addEvent("Interpret Build...", self.system) self.interpret = interpret(instance) self.debug.addEvent("Interpret Build... Finished", self.system) self.pluginMode = plugin if self.pluginMode == True: self.sender = self.plugin elif __name__ == "system": self.sender = self.system else: self.sender = self.user self.debug.addEvent("Starting DOC... Finished", self.system) stop = time.time() starttime = round((stop - start) * 1000) / 1000 if starttime < 1: starttime = "under 1" self.debug.addEvent("DOC started in " + str(starttime) + " second(s)", self.system) def getInstance(self): return self def docprint(self, text, consoleOutput=False): text = str(text) self.Listener.Print(text=text) if consoleOutput: self.debug.addEvent("Output: " + text, self.consoleOutput) if text == "None": pass else: print(text) def docinput(self, placeholder=""): # input userinput = input(placeholder + "") self.Listener.UserInput(self.username, userinput) return userinput def log(self, command="docinputevent"): self.interpret.update() self.Listener.ConsoleRun(command=command, sender=self.sender) self.debug.addEvent(f"{command}", self.consoleInput) if command == "docinputevent": line_in = self.docinput(placeholder="[DOC]>>> ") else: line_in = command self.docprint(text=self.interpret.log(line_in), consoleOutput=True) def interfaceclient(self): pass def terminalclient(self): self.Listener.TerminalClientStart() try: while True: line_in = self.docinput(placeholder=f"[DOC][{self.username}]>>> ") if line_in.lower() != "exit": self.log(line_in.lower()) continue else: self.Listener.TerminalClientStop(exitCode=200) self.debug.addEvent("Console Exited", self.consoleGeneral) break except KeyboardInterrupt as e: self.debug.addEvent("Console Exited", self.consoleGeneral) def installPackage(self, packageName): path = f"plugins/{packageName}" self.Listener.PluginInstall(packageName, path) self.debug.addEvent("Install Package " + packageName + " from " + path, self.plugin) exec(f"import plugins.{packageName}.Main as {packageName}") def getPluginCommands(self): return self.PluginCommands