我已经在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
但我知道这远非正确。那么,任何人都可以帮我一些代码吗?感谢
答案 0 :(得分: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文件里面是什么,但这应该适用于大多数用途。