1

几天来,我一直在用 Applescript 编写我自己的 Jarvis 版本,我一直使用 iMessages 作为我的输入和输出,因为我喜欢它的便携方式,但我现在想要更高级一点,并开始让它感觉好像有用。

目前我只使用简单的代码行来识别我何时发送内容,然后运行适当的脚本来发送回复。例如,如果我说“你好”,它会回复我“你好先生”。

一个例子是:

using terms from application "Messages"
    on message received theMessage from theBuddy for theChat

        if theMessage is "hello" then
            run script ("/Users/Alex/Desktop/JarvisScripts/hello.scpt" as POSIX file)
        end if

    end message received
end using terms from

一切都好,但正如我之前所说的,我想更进一步,我需要一种方法,它可以问我一个问题,比如“你好吗”,然后根据我说的“好”等问题,它会运行正确的脚本来回应“好”。我目前的尝试如下:

if theMessage contains "Are you ok" then
    run script ("/Users/Alex/Desktop/JarvisScripts/areyouok.scpt" as POSIX file)

    if theMessage is "I'm fine" then
        run script ("/Users/Alex/Desktop/JarvisScripts/happy.scpt" as POSIX file)
    else
        if theMessage is "No I'm not" then
            run script ("/Users/Alex/Desktop/JarvisScripts/unhappy.scpt" as POSIX file)
        end if
    end if
end if

但我知道这远非正确。那么,有人可以帮我写一些代码吗?谢谢

4

1 回答 1

0

而不是将您的“响应”存储在单独的脚本文件中。尝试改用处理程序。

例如:

if theMessage contains "Are you ok" then
    run script ("/Users/Alex/Desktop/JarvisScripts/areyouok.scpt" as POSIX file)

    if theMessage is "I'm fine" then
        happyResponse()
    else
        if theMessage is "No I'm not" then
            unhappyResponse()
        end if
    end if
end if


--HANDLERS--
on unhappyResponse()
    --<<whatever you want to happen (the code inside your .scpt file)>>
end unhappyResponse

on happyResponse()
    --<<put the contents of happy.scpt here>>
end happyResponse

如您所见,“处理程序”列在代码底部,每当调用其中一个函数时,都会为它们评估代码。现在我不知道你的 .scpt 文件里面有什么,但这应该适用于大多数用途。

于 2013-05-06T18:47:01.220 回答