Speech macro Wikipedia


Este macro es para pedir o preguntar a nuestro asistente información sobre algo o alguien que pueda aparecer en la web de Wikipedia. Al igual que el anterior macro, en este está la posibilidad de guardar la información consultada en un archivo de texto para así crear nuestra propia base de datos y no siempre necesitar de internet.

Aquí sólo algunas líneas del macro con sus respectivos comentarios y al final de éste dejaré un link con el macro completo, ya que en el anterior, el copy/paste igual cambia signos.

<listenFor>[Chris] [Hablame] [De] […]</listenFor> //Al final del documento se crearon 3 reglas para Chris, Hablamede y De. Esto para incluir distintas formas de llamar al comando. Por ejemplo: Christine habla sobre, Christine habla de, etc.
<setState name=”p_hablade” value=”{[…]}”/> //Se guarda lo que se desea buscar
<setState name=”hablade” value=”activa” /> //Se activa la búsqueda
<speak>¿Desea que hable de {[p_hablade]} ?</speak> //El asistente consulta si lo que debe buscar está bien.

Al igual que el anterior, dará las opciones de si y no. (Para entender, ver el speech diccionario o simplemente ver el macro creado).

<script language="VBScript"> //Se inicia un VBScript
   If (fso.FileExists("C:\Christine\Data\Info\{[p_hablade]}.txt")) Then //Se consulta si el archivo existe (el que guardo o guardara el resultado de la búsqueda).
      Proceso = Command.ResolveProperties(“{[p_hablade]}”) //Guarda en una variable la búsqueda
      IE.Navigate "http://es.wikipedia.org/wiki/" & Proceso //Se abre wikipedia en IExplore incluyendo la búsqueda con variable Proceso.
      IE.Visible = False //Se le dice a IExplore que no sea visible
      Do While IE.Busy //Mientras IExplore abra y cargue lo buscado
      Application.wait(2.0) //Esperará 2 segundos antes de continuar
      For Each text In IE.Document.getElementsByTagName("p") //Copiará todo lo que este entre etiquetas <p></p>
      With objFSO.OpenTextFile("C:\Christine\Data\Info\{[p_hablade]}.txt", 8, True)
      .WriteLine text.innerText //Creará y abrirá el archivo con nombre de la búsqueda y escribirá en él el contenido de wikipedia
      line = "C:\Christine\Data\Info\{[p_hablade]}.txt" //Carga la ruta del archivo guardado
      Set ArchivoDeTexto = fso.OpenTextFile(line, 1) : //Se abre el archivo
      linea1 = ArchivoDeTexto.ReadLine //Se guarda la primera línea en una variable linea1
      Count1 = Len(linea1) //Se cuentan los caracteres de esa linea
      if Count1 < 30 then //Si son menos de 30 caracteres
      ArchivoDeTexto.Skipline : //Se salta esa linea
      lectura = ArchivoDeTexto.ReadLine //Se guardan X lineas o párrafos en variables.
      ArchivoDeTexto.Close //Se cierra el archivo.
      fso.DeleteFile line //Se borra el archivo
      txt = lectura & vbCrLf & lectura_1 //Se guarda todo el texto de las anteriores variables en una nueva (pueden agregar más).
      txt1 = Replace(txt, "[10","") //Se eliminarán algunos signos y otros que molestan a la hora de oir al asistente.
      txt25 = Replace(txt24, "[","") //Ultimo signo eliminado.
      Set nuevotexto = FSO.createtextfile(line,true) //Se crea un nuevo archivo (mismo nombre y ruta que el anterior
      nuevotexto.writeline txt25 //Se escribe todo el texto guardado (sin los signos).
      nuevotexto.Close //Se cierra el archivo
      Set ArchivoDeTexto = fso.OpenTextFile(line, 1) : //Se abre nuevamente el archivo
      linea1 = ArchivoDeTexto.ReadLine //Se lee la primera linea
      if Count1 < 30 then //Si es menor a 30 caracteres
      Application.Speak("No tengo información al respecto.") //El asistente dice lo del paréntesis, ya que es posible que el archivo este vacío o tenga la típica linea de que no hay información.
      listFile = fso.OpenTextFile(line, 1).ReadAll //Se abre nuevamente el archivo y se lee todo
      Application.Speak("" & listFile ) //El asistente pasa el texto a voz

Al final en <signatue> deberán poner la de ustedes.

Para descargar el macro CLICK ACA.

Dudas y consultas a los comentarios o correo.