#!/usr/bin/python3 try: from .utils import aion_data_path as _aion_data_path, BaseXMLReader as _BaseXMLReader, BaseXMLWriter as _BaseXMLWriter except ImportError: from utils import aion_data_path as _aion_data_path, BaseXMLReader as _BaseXMLReader, BaseXMLWriter as _BaseXMLWriter config_file = _aion_data_path + "/config.xml" class Aion: """ get infos about all aion internal configs (and change them) :since: 0.1.0 """ def __init__(self) -> None: """ set all class values :return: None :since: 0.1.0 """ self.all_listening_modes = ["auto", "manual"] self.all_stt_engines = ["google", "pocketsphinx"] self.all_time_formats = ["12", "24"] self.all_tts_engines = ["pico2wave", "espeak"] self.supported_languages = ["de_DE", "en_US"] self._aion_cfg_reader = _BaseXMLReader(config_file) self._aion_cfg_writer = _BaseXMLWriter(config_file) def get_hotword_file(self) -> str: """ get set hotword file path :return: str returns path of the hotword file syntax: example: "/usr/local/aion-/etc/Aion.pmdl" :since: 0.1.0 """ from glob import glob for value_list in self._aion_cfg_reader.get_infos(["hotword_file"]).values(): for config in value_list: if config["parent"]["tag"] == "aion": return glob(config["text"])[0] def get_language(self) -> str: """ get set language locale :return: str returns language locale syntax: example: "en_US" :since: 0.1.0 """ for value_list in self._aion_cfg_reader.get_infos(["language"]).values(): for config in value_list: if config["parent"]["tag"] == "aion": return config["text"] def get_listening_mode(self) -> str: """ get set listening mode :return: str returns listening mode syntax: example: "auto" :since: 0.1.0 """ for value_list in self._aion_cfg_reader.get_infos(["listening_mode"]).values(): for config in value_list: if config["parent"]["tag"] == "aion": return config["text"] def get_pid_manipulation_number(self) -> int: """ get set pid manipulation number :return: int returns the pid manipulation number syntax: example: 4 :since: 0.1.0 """ for value_list in self._aion_cfg_reader.get_infos(["pid_manipulation_number"]).values(): for config in value_list: if config["parent"]["tag"] == "aion": return int(config["text"]) def get_stt_engine(self) -> str: """ get set speech-to-text engine :return: str returns speech-to-text engine syntax: example: "google" :since: 0.1.0 """ for value_list in self._aion_cfg_reader.get_infos(["listening_source"]).values(): for config in value_list: if config["parent"]["tag"] == "aion": return config["text"] def get_time_format(self) -> int: """ get set time format :return: str returns time format syntax: