Pregunta para applecript con dragon Dictate

0

Quiero hacer un programa que tome la pregunta que le hago, que ingrese a WolframAlpha, tome la respuesta, la convierta en texto y diga el texto.

    set defaultAnswer to ""
set cancelButton to "Cancel"
set buttonResearch to “ReSearch”

display dialog "Query: " default answer defaultAnswer buttons {cancelButton, buttonResearch} default button buttonResearch cancel button cancelButton with icon 1
copy the result as list to {button_pressed, text_returned}

if (button_pressed is buttonResearch) and (text_returned is not "") then

    open location "http://www.wolframalpha.com/input/?i=" & my encode_text(text_returned, true, false)

    set a to "http://www.wolframalpha.com/input/?i="
    set b to my encode_text(text_returned, true, false)
    set c to a & b

    set myFile to (POSIX path of (path to temporary items)) & "curl_file.xml"
    do shell script "curl -L " & c & " -o " & myFile


end if

-- encoding high-ASCII characters:
on encode_char(this_char)
    set the ASCII_num to (the ASCII number this_char)
    set the hex_list to {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"}
    set x to item ((ASCII_num div 16) + 1) of the hex_list
    set y to item ((ASCII_num mod 16) + 1) of the hex_list
    return ("%" & x & y) as string
end encode_char

-- TEXT ENCODING: encode spaces and high-level ASCII characters (those above 127)
-- encode_URL_A = encode most of the special characters reserved for use by URLs.
on encode_text(this_text, encode_URL_A, encode_URL_B)
    set the standard_characters to "abcdefghijklmnopqrstuvwxyz0123456789"
    set the URL_A_chars to "$+!'/?;&@=#%><{}[]\"~'^\|*"
    set the URL_B_chars to ".-_:"
    set the acceptable_characters to the standard_characters
    if encode_URL_A is false then set the acceptable_characters to the acceptable_characters & the URL_A_chars
    if encode_URL_B is false then set the acceptable_characters to the acceptable_characters & the URL_B_chars
    set the encoded_text to ""
    repeat with this_char in this_text
        if this_char is in the acceptable_characters then
            set the encoded_text to (the encoded_text & this_char)
        else
            set the encoded_text to (the encoded_text & encode_char(this_char)) as string
        end if
    end repeat
    return the encoded_text
end encode_text

¿Cómo accedo al archivo temporal?

    
pregunta Phoenix Ebner 01.06.2015 - 20:39

1 respuesta

1

Esto hace la parte de consulta. Las rutinas de codificación son de enlace :

set defaultAnswer to "Albert Einstein"
set cancelButton to "Cancel"
set buttonResearch to "ReSearch"

display dialog "Query: " default answer defaultAnswer buttons {cancelButton, buttonResearch} default button buttonResearch cancel button cancelButton with icon 1
copy the result as list to {button_pressed, text_returned}

if (button_pressed is buttonResearch) and (text_returned is not "") then

    open location "http://www.wolframalpha.com/input/?i=" & my encode_text(text_returned, true, false)

end if

-- encoding high-ASCII characters:
on encode_char(this_char)
    set the ASCII_num to (the ASCII number this_char)
    set the hex_list to {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"}
    set x to item ((ASCII_num div 16) + 1) of the hex_list
    set y to item ((ASCII_num mod 16) + 1) of the hex_list
    return ("%" & x & y) as string
end encode_char

-- TEXT ENCODING: encode spaces and high-level ASCII characters (those above 127)
-- encode_URL_A = encode most of the special characters reserved for use by URLs.
on encode_text(this_text, encode_URL_A, encode_URL_B)
    set the standard_characters to "abcdefghijklmnopqrstuvwxyz0123456789"
    set the URL_A_chars to "$+!'/?;&@=#%><{}[]\"~'^\|*"
    set the URL_B_chars to ".-_:"
    set the acceptable_characters to the standard_characters
    if encode_URL_A is false then set the acceptable_characters to the acceptable_characters & the URL_A_chars
    if encode_URL_B is false then set the acceptable_characters to the acceptable_characters & the URL_B_chars
    set the encoded_text to ""
    repeat with this_char in this_text
        if this_char is in the acceptable_characters then
            set the encoded_text to (the encoded_text & this_char)
        else
            set the encoded_text to (the encoded_text & encode_char(this_char)) as string
        end if
    end repeat
    return the encoded_text
end encode_text

El problema para decir el resultado no es hablar en sí, sino seleccionar las partes relevantes. Así que mejor busque una herramienta que haga eso, o mejor aún, use los servicios del sitio web para eso, a menudo tienen algún tipo de interfaz.

    
respondido por el user128544 02.06.2015 - 18:30

Lea otras preguntas en las etiquetas