Open Links

Summary: Treats the text of the selected actions as URLs and opens them.
Requires: OmniFocus Pro
Install Location: ~/Library/Scripts/Applications/OmniFocus/
Last Modified: 2019-10-02

Description

I have many OmniFocus actions that consist solely of URLs for Web pages that I need to open. In OmniFocus 1, the text of selected items was available to system services, so I could open the links by selecting the actions and using Safari’s “Open URL” service. With OmniFocus 2, this is no longer possible unless you put an action in edit mode and select the text of the URL. Plus, this only works for a single action at a time. This script brings back the old functionality where I could select lots of actions, press a key, and have all the links open in my browser.

Installation Instructions · Download in Compiled Format · Download in Text Format

Script

on run {}
    repeat with
_action in my selectedActions()
        my
processAction(_action)
    end repeat
end
run

on
selectedActions()
    tell
application "OmniFocus"
        return my
filterValues(my selectedValues(), {inbox task, task, available task, remaining task})
    end tell
end
selectedActions

on
selectedValues()
    tell
application "OmniFocus"
        return
value of selected trees of content of first document window of front document
    end tell
end
selectedValues

on
filterValues(_values, _classes)
    tell
application "OmniFocus"
        set
_result to {}
        repeat with
_value in _values
            if
_classes contains _value's class then
                copy
_value to end of _result
            end if
        end repeat
        return
_result
    end tell
end
filterValues

on
processAction(_action)
    tell
application "OmniFocus"
        set
_url to _action's name
        
do shell script "open " & _url's quoted form
    end tell
end
processAction