import json class ModuleHelp: def __init__(self, filename, log): self.tag = "%20s - " % "mhelp" self.log = log self.filename = filename self.help_dict = self.load_db() self.log.debug(f"{self.tag}Modul Help geladen") def load_db(self): help_dict = {} try: with open(self.filename, 'r', encoding='utf8') as f: help_dict = json.load(f) except Exception as ex: self.log.error( f"{self.tag}Failed loading help dict {self.filename}: {ex}") return help_dict def search_command(self, keyword, groupInfo): answer = '' try: keyword = keyword.strip().lower() if keyword[0]!= ".": keyword =f".{keyword}" for category in self.help_dict: for command in self.help_dict[category]: if keyword in [x.lower() for x in command["Names"]] and (groupInfo is None or keyword[1:].lower() in groupInfo["COMMANDS"]): answer += f'Name(s): {", ".join(str(x) for x in command["Names"])}\n' answer += f'Description: \n{command["Description"]}' break if answer == '': answer += f'There is no entry for {keyword}' except Exception as ex: self.log.error( f"{self.tag}Fucked up checking for keyword:{keyword} Exception:{ex}") answer = "Ausnahmefehler: Dieser Eintrag konnte leider nicht Angezeigt werden.\nBei Fragen wende dich an .request !" return answer def get_all_commands(self, groupInfo): answer = '' try: for category in self.help_dict: cmdList='' for command in self.help_dict[category]: cmds = [] for cmd in command["Names"]: if (groupInfo is None or cmd[1:].lower() in groupInfo["COMMANDS"]): cmds.append(cmd) if len(cmds)>0: cmdList += f'{", ".join(str(x) for x in cmds)}\n' if len(cmdList) >0: answer += f'## {category} ##\n' answer+= cmdList answer += '\n' if answer == '': answer += f'There is no help!' except Exception as ex: self.log.error( f"{self.tag}Fucked up checking for keyword:{keyword} Exception:{ex}") answer = "Ausnahmefehler: Dieser Eintrag konnte leider nicht Angezeigt werden.\nBei Fragen wende dich an .request !" return answer