Dropbox public link (AppleScript)

From Quicksilver Wiki
Jump to: navigation, search

Get the Dropbox public link URLs for files in your Dropbox Public folder. For multiple files, the URL will be copied to the clipboard one at a time (useful if Clipboard History is active).

Put your Dropbox Public folder path in the _publicFolderPath property, e.g. /Users/username/Dropbox/Public

Replace the 0 in the _dropboxID property with your Dropbox id (right-click a file in the Public folder, Copy Public Link and get the number from within the clipboard url).


-- Put your Dropbox Public folder path in the quotes, e.g. /Users/example/Dropbox/Public
property _publicFolderPath : ""

-- Replace the 0 with your Dropbox id (right-click a file in the Public folder, Copy Public Link and get the number from within the clipboard url).
property _dropboxID : 0

on _findAndReplace(_toFind, _toReplace, _theText)
        set _astid to AppleScript's text item delimiters
        try
                set AppleScript's text item delimiters to _toFind
                set textItems to _theText's text items
                set AppleScript's text item delimiters to _toReplace
                tell textItems to set _editedText to beginning & _toReplace & rest
                set AppleScript's text item delimiters to " "
                set _textItems2 to text items of _editedText
                set AppleScript's text item delimiters to "%20"
                set _editedText to _textItems2 as text
                set AppleScript's text item delimiters to _astid
                return _editedText
        on error a number b
                set AppleScript's text item delimiters to _astid
                error a number b
        end try
end _findAndReplace

using terms from application "Quicksilver"
        on open _theseItems
                try
                        repeat with _anItem in _theseItems
                                tell application "Finder"
                                        set _path to POSIX path of (_anItem as text)
                                        set _fileName to my _findAndReplace(_publicFolderPath, "", _path)
                                        set _url to "http://dl.dropbox.com/u/" & _dropboxID & _fileName
                                       
                                        set the clipboard to _url
                                        -- Need a delay between copying to the clipboard
                                        if (count of _theseItems) > 1 then delay 1
                                end tell
                        end repeat
                       
                        -- These 2 lines (1 won't work) clear a multiple selection from Quicksilver's first pane.
                        tell application "Quicksilver" to set selection to missing value
                        tell application "Quicksilver" to set selection to missing value
                       
                        tell application "Quicksilver" to set selection to _url
                on error a number b
                        display dialog a
                end try
        end open
end using terms from