I have a lot of RTF records with attached URLs. When I select such a record, this script will open the URL in Safari in the background. So if I need to look at the original page, I just switch to Safari.
-- This script is ment to be attached to records in DevonThink.
-- When the record is selected, its URL (if any) will be opened in the background, with Safari. The same tab will be reused for consecutive pages.
--
-- Inspired by Tom Shannon (http://www.devon-technologies.com/scripts/userforum/viewtopic.php?f=20&t=10894)
-- Created by Tommy Sundström
on triggered(theRecord)
try
tell application "DEVONthink Pro"
set theURL to URL of theRecord
if theURL is not {} then
tell window 1 of application "Safari"
set focused_tab_URL to (URL of current tab) as text
-- Make marked url
set rubycode to "puts '" & theURL & "'.match(/\\?/)" -- checks if url contains "?"
set url_has_questionmark to do shell script ("ruby -e " & quoted form of rubycode)
if url_has_questionmark is "nil" then
-- No questionmark, so it needs to be included in the marker
set markedURL to theURL & "?devonthinkpreview"
else
-- URL already has a questionmark
set markedURL to theURL & "&devonthinkpreview"
end if
-- Is focused_tab created by this script (ie does it contain "&devonthinkpreview" in the URL)?
set rubycode to ("puts '" & focused_tab_URL & "'.match(/devonthinkpreview/)") -- checks if url contains "devonthinkpreview"
set tab_created_by_me to do shell script ("ruby -e " & quoted form of rubycode)
if (tab_created_by_me is "nil") then
-- Not created by this script, so need to make a new
set current tab to make new tab with properties {URL:markedURL}
else
-- Created by this script, so can be reused
set URL of current tab to markedURL
end if
-- activate -- Uncomment to give Safari focus.
end tell
end if
end tell
on error error_message number error_number
-- Ignore
display dialog error_message -- For debugging
end try
end triggered