def __init__(self): self.master = loader()["settings"]["master"] self.slave = loader()["settings"]["slave"] self.waker = Waker() self.recognizer = Recognizer() self.speaker = Speaker() self.browser = Browser() self.wsearch = Wsearch() self.launcher = Launcher() self.wiki = Wiki() self.discord = Discord() self.commands = { "abrir": self.browse, "buscar": self.search, "iniciar": self.launch, "wikipedia": self.wikipedia, "salir": self.off, "discord": self.discord_commands }
class Wiki: def __init__(self): self.speaker = Speaker() self.recognizer = Recognizer() self.browser = Browser() # función que ejecuta la busqueda en sí def wikisearch(self, what): search = wikipedia.page(what) print("Esto es lo que encontré en wikipedia sobre {}, {}".format(search.title, search.summary)) # self.speaker.say("Esto es lo que encontré en wikipedia sobre {}, {}".format(search.title, search.summary)) self.speaker.say("Desea que abra la página en el navegador?, señor") if self.browser.yn_question(): self.browser.open_url(search.url) self.speaker.say("Abriendo wikipedia") else: self.speaker.say("Finalizando wikisearch") # genera una frase o palabra a partir de un array def phraser(self, query): phrase = "" if len(query) > 1: for words in query: phrase = "{} {}".format(phrase, words) return phrase else: return query[0] # genera una frase o palabra a partir de un array def phraser(self, query): phrase = "" if len(query) > 1: for words in query: phrase = "{} {}".format(phrase, words) return phrase else: return query[0] def yn_question(self): if "sí" in self.__recognizer.hear(): return True else: return False def wiki(self): self.speaker.say("Que desea buscar en wikipedia?") # paso la respuesta por phraser y despues la envío a wikisearch try: self.wikisearch(self.phraser(self.recognizer.hear())) except wikipedia.exceptions.PageError: self.speaker.say("Ese término no corresponde a una página de wikipedia.")
def __init__(self): self.speaker = Speaker() self.recognizer = Recognizer() self.browser = Browser()
def __init__(self): self.searchers = loader()["searchs"] self.speaker = Speaker() self.recognizer = Recognizer() self.cleanlist = ["buscar", "en"]
from resources.apps.speaker import Speaker from resources.apps.recognizer import Recognizer speaker = Speaker() recognizer = Recognizer() def off(): query = recognizer.hear() if "sí" in query: exit()
class Apps: # instancias y parámetros def __init__(self): self.master = loader()["settings"]["master"] self.slave = loader()["settings"]["slave"] self.waker = Waker() self.recognizer = Recognizer() self.speaker = Speaker() self.browser = Browser() self.wsearch = Wsearch() self.launcher = Launcher() self.wiki = Wiki() self.discord = Discord() self.commands = { "abrir": self.browse, "buscar": self.search, "iniciar": self.launch, "wikipedia": self.wikipedia, "salir": self.off, "discord": self.discord_commands } def off(self, query): off() def wakeup(self): (check, query) = self.waker.wake() print(query) if check: (check, command) = self.waker.checkcat(query, self.commands.keys()) if check: self.commands[command](query) # hacer sonido def beep(self): beep() # escucha y devulve una lista de palabras que escuchó def hear(self): query = self.recognizer.hear() return query # tts [what] def say(self, what): self.speaker.say(what) # abrir en el navegador def browse(self, query): self.browser.browse(query) # buscar en google def search(self, query): self.wsearch.search(query) # iniciar programa def launch(self, query): self.launcher.launch(query) def wikipedia(self, query): self.wiki.wiki() # toggles discord def discord_commands(self, query): self.discord.do(query)
def __init__(self): # instancias de dependencias self.__recognizer = Recognizer() self.__speaker = Speaker() self.__wsearch = Wsearch() self.urls = loader()["urls"]
class Browser: def __init__(self): # instancias de dependencias self.__recognizer = Recognizer() self.__speaker = Speaker() self.__wsearch = Wsearch() self.urls = loader()["urls"] # función abrir en el navegador def open_url(self, url): try: webbrowser.open(url) except webbrowser.Error: self.__speaker.say("Error") # función que comprueba si en query hay una palabra # asignada a una url, en caso positivo ejecuta la función # abrir en el navegador def check_urls(self, query): for keys in self.urls.keys(): if keys in query: self.open_url(self.urls[keys]) self.__speaker.say("Abriendo {}".format(keys)) return True return False # función que pregunta qué página se desea abrir def ask_browse(self): self.__speaker.say("Qué página desea abrir") return self.__recognizer.hear() def yn_question(self): if "sí" in self.__recognizer.hear(): return True else: return False def browse(self, query): # comprueba si se dijo una palabra que este asignada a una url # si es afirmativo la url se abre directamente, sino continúa # al filtro siguiente if self.check_urls(query): pass # else: while True: # pregunta que página desea abrir, # compruebo si en la respuesta se dijeron urls, # query ahora es la nueva respuesta # como en la comprobación anterior, si se encuentra una url # esta se abre directamente query = self.ask_browse() if self.check_urls(query): break else: # si la etapa anterior no funcionó pregunta si debe buscar # en google los términos escuchados self.__speaker.say( "No existe u erre ele asignada a ese término, debería buscarlo en google?" ) # si la respuesta es si, genero una frase con las palabras # escuchadas en la etapa inmediatamente anterior, # si es una sola palabra, se genera una frase que # contenga solo esta palabra, esto no afecta a la # búsqueda en sí if self.yn_question(): self.__wsearch.search(query) break # si la respuesta es no, pregunto si desea repetir la # página a abrir o si desea salir else: self.__speaker.say("Desea repetir la página?") if self.yn_question(): pass else: break