Esempio n. 1
0
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.")
Esempio n. 2
0
    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
        }
Esempio n. 3
0
 def __init__(self):
     self.speaker = Speaker()
     self.recognizer = Recognizer()
     self.browser = Browser()
Esempio n. 4
0
    def __init__(self):
        self.searchers = loader()["searchs"]
        self.speaker = Speaker()
        self.recognizer = Recognizer()

        self.cleanlist = ["buscar", "en"]
Esempio n. 5
0
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()
Esempio n. 6
0
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)
Esempio n. 7
0
 def __init__(self):
     # instancias de dependencias
     self.__recognizer = Recognizer()
     self.__speaker = Speaker()
     self.__wsearch = Wsearch()
     self.urls = loader()["urls"]
Esempio n. 8
0
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