我正在建立一个解析Dropbox"画廊"的Automator工作流程。包含Quicktime视频文件的页面,并自动构建"直接下载"每个文件的链接。最后,我希望将所有链接生成到Mail.app消息的正文中。
基本上,除了将新链接发送到新的Mail.app消息的部分外,一切都按预期工作。我的问题是链接被发送到消息正文而没有换行符,因此它们都被连接成一行,如下所示:
https://dl.dropbox.com/u/149705/stackexchange/20121209/stackexchange_automator_prob2.png
(Mail.app似乎将连接的字符串包装在问号上)
最奇怪的是,如果我使用"复制到剪贴板"在工作流结束时的操作(而不是我的发送到邮件的Applescript),当我将相同的剪贴板内容粘贴到TextEdit与BBEdit时,我得到完全不同的结果。
链接似乎正确粘贴到TextEdit中。但是,粘贴到明文BBEdit文档中的同一个剪贴板只产生第一个链接:
https://dl.dropbox.com/u/149705/stackexchange/20121209/stackexchange_automator_prob5.jpg
可能导致这3种完全不同的行为与"获取链接网址"完全相同的结果动作?
答案 0 :(得分:0)
删除所有其他操作,并使用您的图库网址更新myPage。
on run
set myPage to "https://www.dropbox.com/sh/aaaaaaaaaaaaaaa/aaaaaaaaaa"
set myLinks to do shell script "curl " & quoted form of myPage & " | grep -Eo 'https://www.dropbox.com/sh/[^/]*/[^/\"]*/[^\"]*' | sed s'/https:\\/\\/www.dropbox.com\\(.*\\)/https:\\/\\/dl.dropbox.com\\1?dl=1/g'"
tell application "Mail"
activate
make new outgoing message with properties {visible:true, content:"" & myLinks}
end tell
end run
答案 1 :(得分:0)
每个应用程序都不同,它理解或不理解输出的格式。
关于AppleScript
行动:
输入是AppleScript list
,来自空字符串“”的强制执行单行,因为默认情况下分隔符设置为“”。
要获得所需的结果,请将分隔符设置为return
或linefeed
,如下所示。
on run {input}
set {oTID, text item delimiters} to {text item delimiters, linefeed}
set tContent to input as text
set text item delimiters to oTID
tell application "Mail"
activate
make new outgoing message with properties {visible:true, content:tContent}
end tell
return input
end run
答案 2 :(得分:0)
您得到该结果的原因是链接从字符串列表开始,但作为单个字符串发送到mail.app。
您不需要做任何想要解决此问题的事情,只需在链接后添加返回即可。
我只想用一个'Run applescript'Action来完成整个工作。
该脚本仅收集DL链接文件。在末尾添加一个返回并将它们发送到Mail.app。 无需其他格式化
on run {input, parameters}
set db_tag to "dl-web.dropbox.com/get"
set myLinks to {}
tell application "Safari"
set thelinkCount to do JavaScript "document.links.length " in document 1
repeat with i from 1 to thelinkCount
set this_link to (do JavaScript "document.links[" & i & "].href" in document 1) as string
if this_link contains db_tag then
--add the link with a carriage return on the end.
copy this_link & return to end of myLinks
end if
end repeat
end tell
tell application "Mail"
activate
make new outgoing message with properties {visible:true, content:"" & myLinks}
end tell
end run