Dropbox Plugin

354 views
Skip to first unread message

Patrick Robertson

unread,
Nov 5, 2012, 2:06:30 PM11/5/12
to quicksilver---development
Evening all,

I've finally got round to finishing off (well, to a usable state) what I can on the Dropbox Plugin and would like to share it with a select few for some 'beta' testing :)
I can currently test the plugin with up to 5 people (whilst my Dropbox API status is in 'development' mode), so if people are interested, please let me know your Dropbox email and I'll add you to the list.
Rob is already a very very early bird tester, so there are 4 more spots left!

A quick list of the current features of the Dropbox plugin:

* "Show on Dropbox.com" action to view a file on Dropbox.com (files only)
* "Get Public Link" action (files 
* "Show Revisions" action (files only)
* "Restore Revisions" action, for restoring a revision (created using the 'show revisions' action
* Adds Dropbox to your Catalog (root only atm, I want to change some of QS's code to allow you to go deeper)
* Right arrow into Dropbox.app shows your recently changed files (since the plugin was first installed)
* Adds a small Dropbox icon to all files in your dropbox folder (buggy)

You'll need to set up the plugin in the QS prefs under Prefs > left hand side > Dropbox, then you'll be ready to go!
Documentation is currently limited.

NB: The attached plugin won't work properly until I've added your Dropbox email address to the API list ;-)
Dropbox Plugin.zip

Patrick Robertson

unread,
Nov 5, 2012, 2:08:59 PM11/5/12
to quicksilver---development
Amendment:

I don't need to add email addresses to the API list. It'll be first come first served basis!
Just download the plugin and go ;-)

philostein

unread,
Nov 5, 2012, 5:28:16 PM11/5/12
to quicksilver-...@googlegroups.com
Got it. :)

QS as been added to Dropbox, I see it in the Catalog and I see all the actions. I relaunched QS.

Got these errors at first however:

→ into Dropbox

http://dl.dropbox.com/u/157506/Screen%20Shot%202012-11-06%20at%206.49.15%20AM.png

Get Public Link:

http://dl.dropbox.com/u/157506/Screen%20Shot%202012-11-06%20at%206.58.32%20AM.png

Now the Actions and → into app are working! Maybe it too Dropbox a short while to accept the requests?

The overlay icons appeared after a few minutes of playing around, but no previews, just file type placeholder icons:

philostein

unread,
Nov 5, 2012, 5:42:22 PM11/5/12
to quicksilver-...@googlegroups.com
I see 'Load Revisions' as opposed to 'Show'. Working well, powerful stuff! It'd be great to see previews/Quick Looks of the revisions, so I'm not flying blind.


On Tuesday, November 6, 2012 4:06:53 AM UTC+9, Patrick wrote:

Howard Melman

unread,
Nov 5, 2012, 8:08:34 PM11/5/12
to quicksilver-...@googlegroups.com
I haven't played with it (since I don't know how to add an email address to the api list :) but here are some thoughts.

Howard

On Nov 5, 2012, at 2:06 PM, Patrick Robertson <robertso...@gmail.com> wrote:

> I've finally got round to finishing off (well, to a usable state) what I can on the Dropbox Plugin and would like to share it with a select few for some 'beta' testing :)
> I can currently test the plugin with up to 5 people (whilst my Dropbox API status is in 'development' mode), so if people are interested, please let me know your Dropbox email and I'll add you to the list.
> Rob is already a very very early bird tester, so there are 4 more spots left!
>
> A quick list of the current features of the Dropbox plugin:
>
> * "Show on Dropbox.com" action to view a file on Dropbox.com (files only)

This is good. It made me think of the Open With action (which works with apps or printers). I wondered if that could be extended to include Dropbox.com. That's just a brainstorm I'm throwing out there.

> * "Get Public Link" action (files

This will be very popular. I assume it returns the URL in the first pane (that's what Get implies to me). I suspect that for most people the default action at this point will be Open URL, but in this case the most commonly desired action would be copy (or maybe paste). The alt action for a URL will be Open URL with… right? I'm not sure if there's something to improve here or not. Certainly the power of QS is that there are multiple actions and to do Paste I'd have it setup to work with ⇧⌘P anyway.

> * "Show Revisions" action (files only)

In a results list, right? (that's what Show implies to me)

> * "Restore Revisions" action, for restoring a revision (created using the 'show revisions' action

This I don't understand. Show should list, so I'm assuming that after selecting a revision I can restore this one to be the current version. In that case this action name should be singular not plural. If there's an extra step you're implying to create a revision, what's that action called? Or maybe I'm just completely lost...

> * Adds Dropbox to your Catalog (root only atm, I want to change some of QS's code to allow you to go deeper)

This one I don't follow. I'm a casual user of dropbox and ~/Dropbox is already in my catalog. Why aren't I just navigating that?

> * Right arrow into Dropbox.app shows your recently changed files (since the plugin was first installed)

This is very good. Are there actions specific to Dropbox.app? I'm thinking the way Get New Mail is specific to Mail.app (which I know was a little buggy long ago). I would think Open Dropbox Folder and Open Dropbox.com would be useful here. And probably Pause/Resume Syncing.

Patrick Robertson

unread,
Nov 6, 2012, 3:00:25 AM11/6/12
to quicksilver-...@googlegroups.com
Thanks Howard and Phil, all great feedback. I'll work on improving the plugin over the next few days.

> I haven't played with it (since I don't know how to add an email address to the api list :) but here are some thoughts.

No need to do this, just download the plugin, go to the Prefs and 'link' Quicksilver with your Dropbox :)

Patrick Robertson

unread,
Nov 6, 2012, 3:14:32 AM11/6/12
to quicksilver-...@googlegroups.com
A few more comments:

This will be very popular. I assume it returns the URL in the first pane (that's what Get implies to me)

At the moment it copies the URL to the pasteboard. Perhaps the method should be renamed 'Copy public Link'? Or I could modify the action to return the URL to the 1st pane, then maybe add a pref for 'copy public links to pasteboard when getting links'


>> * "Show Revisions" action (files only)
In a results list, right? (that's what Show implies to me)

Yep, the revisions are loaded asynchronously and populated in the 1st pane results list - thanks to Rob's recent changes :)

>> * "Restore Revisions" action, for restoring a revision (created using the 'show revisions' action
This I don't understand. Show should list,...

Sorry it was a typo in the email. Within the plugin it's "Restore Revision". The only way a revision can currently be created is through the 'show revisions' action.

>> * Adds Dropbox to your Catalog (root only atm, I want to change some of QS's code to allow you to go deeper)
This one I don't follow. I'm a casual user of dropbox and ~/Dropbox is already in my catalog. Why aren't I just navigating that?

It adds all the files/folders one level deep within your Dropbox folder, not just the 'Dropbox' folder (which is probably added from the default 'home' catalog preset). This is of most use for users who don't have their Dropbox in the default ~/Dropbox location. The preset will work wherever your dropbox is.

>> * Right arrow into Dropbox.app shows your recently changed files (since the plugin was first installed)
> This is very good. Are there actions specific to Dropbox.app? I'm thinking the way Get New Mail is specific to Mail.app (which I know was a little buggy long ago). I would think Open Dropbox Folder and Open Dropbox.com would be useful here. And probably Pause/Resume Syncing.

I think 'Open Dropbox Folder' is a bit redundant, you can just find the actual 'Dropbox folder' in the 1st pane and use 'Open'. 'Open Dropbox.com' might be useful.
The ability to Pause/Resume syncing was why I first created the plugin, but alas - there's no way of doing this through the API unfortunately. 

Phil's reply:

I see 'Load Revisions' as opposed to 'Show'. Working well, powerful stuff! It'd be great to see previews/Quick Looks of the revisions, so I'm not flying blind.

Yeah, this is currently rather limited, but having some kind of way of seeing what changed in each revision is definitely a must.


Got these errors at first however:...

Are you sure Dropbox was running when you got those errors? And was Dropbox properly linked to QS? I should probably try and make those errors more clear, so you can know what to do - thanks.
... yep, from your Console log it looks like QS wasn't authenticated when you were first trying to use the plugin.

OK, a few more improvements :)

On 6 November 2012 01:08, Howard Melman <hme...@gmail.com> wrote:

Rob McBroom

unread,
Nov 6, 2012, 9:27:14 AM11/6/12
to quicksilver-...@googlegroups.com
On Nov 5, 2012, at 8:08 PM, Howard Melman <hme...@gmail.com> wrote:

> I haven't played with it (since I don't know how to add an email address to the api list :) but here are some thoughts.

Replying to Howard’s message, but my responses are mostly directed at Patrick.

>> * "Get Public Link" action (files
>
> This will be very popular. I assume it returns the URL in the first pane (that's what Get implies to me).

I would rename it to “Copy Public Link” as you suggested, since that’s how it shows in Finder’s context menu and it gives a better idea of what’s about to happen. Though now that we’re talking about it, I think you should also create a “Get Public Link” action that returns the URL directly to the first pane for some further action.

> I suspect that for most people the default action at this point will be Open URL, but in this case the most commonly desired action would be copy (or maybe paste). The alt action for a URL will be Open URL with… right?

FYI, the alternate for “Open URL” is “Open URL in Background”. You’ll be able to see this by simply holding ⌘ in the next release. :-)

>> * Adds Dropbox to your Catalog (root only atm, I want to change some of QS's code to allow you to go deeper)
>
> This one I don't follow. I'm a casual user of dropbox and ~/Dropbox is already in my catalog. Why aren't I just navigating that?

The regular file/folder scanner won’t cut it? I guess the trick is altering the path. But it can be configured programmatically instead of by plist. (I haven’t looked at what you’ve actually done.)

--
Rob McBroom
<http://www.skurfer.com/>

Patrick Robertson

unread,
Nov 6, 2012, 11:02:35 AM11/6/12
to quicksilver-...@googlegroups.com
Thanks Rob, I'll do as you sayon the Public Link action :)


> The regular file/folder scanner won’t cut it? I guess the trick is altering the path. But it can be configured programmatically instead of by plist. (I haven’t looked at what you’ve actually done.)

It's part of the Core Plugin, so inaccessible from other plugins. The 'changes I want to make' to the QS code was to move the class into a framework.

Howard Melman

unread,
Nov 6, 2012, 12:47:36 PM11/6/12
to quicksilver-...@googlegroups.com

On Nov 6, 2012, at 9:27 AM, Rob McBroom <mailin...@skurfer.com> wrote:

>>> * "Get Public Link" action (files
>>
>> This will be very popular. I assume it returns the URL in the first pane (that's what Get implies to me).
>
> I would rename it to “Copy Public Link” as you suggested, since that’s how it shows in Finder’s context menu and it gives a better idea of what’s about to happen. Though now that we’re talking about it, I think you should also create a “Get Public Link” action that returns the URL directly to the first pane for some further action.

I agree, two actions is best as both are useful.

I'm good with a Show Revisions action and a Restore Revision action for those shown :) Are revisions a new type as shown in the Actions prefs? If so Revisions or Dropbox Revisions sounds like a good name for the type.

I think Phil suggested Load Revisions instead of Show Revisions. There aren't any Load actions now, and there are several that use Show to populate a results list (Show Contents, Show Menu Items, Show Results for Search, etc.). Hence my preference for Show Revisions.

I now understand the new Dropbox catalog entry and like it.

>>> * Right arrow into Dropbox.app shows your recently changed files (since the plugin was first installed)
>> This is very good. Are there actions specific to Dropbox.app? I'm thinking the way Get New Mail is specific to Mail.app (which I know was a little buggy long ago). I would think Open Dropbox Folder and Open Dropbox.com would be useful here. And probably Pause/Resume Syncing.
>
> I think 'Open Dropbox Folder' is a bit redundant, you can just find the actual 'Dropbox folder' in the 1st pane and use 'Open'. 'Open Dropbox.com' might be useful.
> The ability to Pause/Resume syncing was why I first created the plugin, but alas - there's no way of doing this through the API unfortunately.

I agree Open Dropbox Folder is a bit redundant, I was just looking through the Dropbox menu bar icon's menu.

Howard

Patrick Robertson

unread,
Nov 10, 2012, 8:57:33 AM11/10/12
to quicksilver-...@googlegroups.com
Thanks everyone for the feedback, I've made lots of changes and think the plugin's about ready for launch:

* Icons now show file previews, plus a little dropbox icon in the corner
* Added a new 'Copy Public Link' method
* Sorted when all actions should/shouldn't display
* Revisions are now stored on disk so you can Quicklook them/open them to see which one you want (which now means that loading revisions takes a bit longer)
* Revisions have fancy icons with a clock next to them

Getting the icons to refresh consistently requires this pull request (thanks Rob!)

I'm still having trouble getting the little Dropbox icons to load consistently. It depends on whether or not you already have the 'Dropbox' folder in your catalog.

Aside:
Rob eat your heart out. You thought getting file objects to load asynchronously was a headache?
Dropbox icons / revision icons do this:
generic icon for file type > Quicklook preview for file > Quicklook preview + small icon in the corner
:D

Although it was made much easier with 1200 :)

Patrick Robertson

unread,
Nov 10, 2012, 9:52:34 AM11/10/12
to quicksilver-...@googlegroups.com
Oh yeah, you might like the plugin ;-)
Dropbox Plugin.zip

philostein

unread,
Nov 11, 2012, 3:42:33 AM11/11/12
to quicksilver-...@googlegroups.com
All of these additions work:

* Icons now show file previews, plus a little dropbox icon in the corner
* Added a new 'Copy Public Link' method
* Sorted when all actions should/shouldn't display
* Revisions are now stored on disk so you can Quicklook them/open them to see which one you want (which now means that loading revisions takes a bit longer)
* Revisions have fancy icons with a clock next to them

It's really useful having the Dropbox icon overlay on objects - makes it immediately obvious where the folder/file is.
I can select a bunch of revisions, hit ⌘Y, and browse through a file's history without going anywhere near a browser. Wow!

Great stuff.

Etienne Samson

unread,
Nov 11, 2012, 10:47:06 AM11/11/12
to quicksilver-...@googlegroups.com
Tried that one, good job, it works nicely ;-). Only one remark: there's no way to default the Dropbox path to "~/Dropbox" ? I'm using the default, and wasn't sure what *your* default was. No idea if the API exposes this though.

Cheers !,
Etienne Samson
--
samson....@gmail.com

Patrick Robertson

unread,
Nov 11, 2012, 11:49:28 AM11/11/12
to quicksilver-...@googlegroups.com
>  there's no way to default the Dropbox path to "~/Dropbox" ? I'm using the default, and wasn't sure what *your* default was. No idea if the API exposes this though.

The API doesn't expose this, nor do the prefs (.plist) or anywhere else I can find. For some reason the Dropbox guys want to keep it hidden.
There is no 'default'. You have to set the path when you first set up the plugin (link it with your Dropbox etc.) Perhaps using the default as "~/Dropbox" (then displaying a warning/notif if it doesn't exist) would make things a bit easier for those lazy users ;-)

Merci,

Henning Jungkurth

unread,
Nov 11, 2012, 12:01:56 PM11/11/12
to quicksilver-...@googlegroups.com
> The API doesn't expose this, nor do the prefs (.plist) or anywhere else I
> can find.

My ~/Library/Preferences/com.getdropbox.dropbox.plist contains an
entry NSNavLastRootDirectory, which points to the folder that contains
the dropbox folder. I think it might only exist when you moved the
dropbox folder at least once.

Patrick Robertson

unread,
Nov 11, 2012, 12:16:46 PM11/11/12
to quicksilver-...@googlegroups.com
That file's ancient and isn't used any more by Dropbox.
Everything's stored in ~/.dropbox now, most of it encrypted.


That thread goes through the same troubles I've been through. I thought it easier to ask the user once, than to try and deal with where it's stored (which varies between Dropbox version, and is stored in base64

I could have used http://www.dropboxwiki.com/Get_Dropbox_Folder
But who knows if/when that will break :)

Rob McBroom

unread,
Nov 12, 2012, 2:11:47 PM11/12/12
to quicksilver-...@googlegroups.com
On Nov 10, 2012, at 8:57 AM, Patrick Robertson <robertso...@gmail.com> wrote:

* Icons now show file previews, plus a little dropbox icon in the corner

Should this go in the bottom-right corner? Just me?

* Revisions are now stored on disk so you can Quicklook them/open them to see which one you want (which now means that loading revisions takes a bit longer)

That sounds cool, but if someone removes old revisions for some security-related reason, they might have no idea that old copies could have been leaked into ~/Library/Caches too. That should probably be a preference and/or made very obvious somehow. Maybe also add a “Delete local revisions” action?

It would be nice if local revisions could be managed by the catalog scanning process. That way it happens in the background instead of while you wait, and revisions that don’t exist on the remote end could just be removed automatically. But that probably creates more problems than it solves.

It’s really cool in practice though, so probably worth keeping in.

I saw a problem trying to get a list on one file. The Fetching Contents… just stays there and nothing happens. The console shows something like this:

2012/11/12 1:43:36.554 PM Quicksilver[9478]: [WARNING] DropboxSDK: error making request to /1/files/dropbox/Example/SomeFile.txt - (404) File has been deleted
2012/11/12 1:43:36.555 PM Quicksilver[9478]: Error :Error Domain=dropbox.com Code=404 "The operation couldn’t be completed. (dropbox.com error 404.)" UserInfo=0x1111a30b0 {path=/Example/SomeFile.txt, rev=601004533f3, error=File has been deleted, destinationPath=/Users/rob/Library/Caches/Quicksilver/DropboxPlugin/601004533f3.txt}

There are 19 revisions shown on the web site. There was a deletion and recreation at one point in the history. Could it be getting tripped up on that? I can go into more detail privately.

Also, should we add a QSTask during this process so you’ll know something is happening? I haven’t seen the code, but I’m guessing the total number of revisions is know early in the process, so you could give a progress indicator, right?

Patrick Robertson

unread,
Nov 12, 2012, 3:22:52 PM11/12/12
to quicksilver-...@googlegroups.com
Thanks Rob,

We can discuss this in more detail privately ;-)
Internet's playing up at the moment.

> Also, should we add a QSTask during this process so you’ll know something is happening? I haven’t seen the code, but I’m guessing the total number of revisions is know early in the process, so you could give a progress indicator, right?

Good idea, but no-ish to your 2nd question. Everything with the dropbox plugin is done asynchronously.
Show Revisions sends off a request to get the revisions… the delegate responds with a list of revisions, then here I send off a request to get the contents of each revision. So half way through I know the number of revisions. From there I guess I could add more detail to the task :)

I just need to get the source out really…

Etienne Samson

unread,
Nov 13, 2012, 12:46:09 PM11/13/12
to quicksilver-...@googlegroups.com
Another quick thing : I was bothered by the Keychain security dialog popping up when QS starts, asking access to the Keychain (yeah, I'm psychic, I know exactly what you're trying to do, Quicksilver ;-)). I don't think it happened using ß70, so maybe it only happens on signed binaries (I built my own version afterwards, and the dialog started to appear at that time…)

> I just need to get the source out really…


If you do that, I'll take care of the taskification + catalogification ;-).

Cheers,
Etienne Samson
--
samson....@gmail.com

Rob McBroom

unread,
Nov 13, 2012, 1:30:00 PM11/13/12
to quicksilver-...@googlegroups.com
On Nov 13, 2012, at 12:46 PM, Etienne Samson <samson....@gmail.com> wrote:

> I don't think it happened using ß70, so maybe it only happens on signed binaries (I built my own version afterwards, and the dialog started to appear at that time…)

Yeah, the release builds are signed, so if you’ve allowed it in the past, it should keep working. But us devs who are constantly building unsigned copies will always see the warning.

I think you can also Always Allow for a specific build, but I’m not sure that’s a good idea when you do dozens of builds that might only live for a few minutes each. :-)

Patrick Robertson

unread,
Nov 13, 2012, 1:52:49 PM11/13/12
to quicksilver-...@googlegroups.com
If you do that, I'll take care of the taskification + catalogification ;-).

Oooh incentives ;-)
OK then, maybe a close few friends ;-)
I was thinking I'd keep it closed source for a while post launch, then release it once the hype's died down/I'm happy competitors won't steal the code and piggy back off my work.
I know that people don't adhere GPL nowadays :(


I’m not sure that’s a good idea when you do dozens of builds that might only live for a few minutes each. :-)

Just looked in Keychain > Quicksilver > ⌘I > List of applications
and I had QS there 13 times. Now I'll only allow once :)

philostein

unread,
Nov 17, 2012, 8:39:31 PM11/17/12
to quicksilver-...@googlegroups.com
Managed to re-install the plugin, and I can find /Dropbox with 'DR' now, so all is good.

What happens to cached revisions? Do they get deleted after a while? A relaunch didn't clear them.

Patrick Robertson

unread,
Nov 19, 2012, 12:25:58 PM11/19/12
to quicksilver-...@googlegroups.com
> What happens to cached revisions? Do they get deleted after a while? A relaunch didn't clear them.

Nothing at the moment. They stay there until the QS caches get cleared (not that often).
Maybe they should be moved to a more private (/tmp) location, so that they get cleared on relaunch.

philostein

unread,
Nov 19, 2012, 4:44:15 PM11/19/12
to quicksilver-...@googlegroups.com
The 'DR' problem is back. Deleting the 2 cache folders doesn't work. I deleted my custom /Dropbox catalog entry, no joy. The plugin's catalog shows all the items in Prefs.

Update: Re-adding the custom catalog and relaunching worked though! I'll see how it goes. :)


On Tuesday, November 6, 2012 4:06:53 AM UTC+9, Patrick wrote:

Jan Kielczewski

unread,
Apr 11, 2013, 3:22:42 PM4/11/13
to quicksilver-...@googlegroups.com
any chance of being added to the API list? using qs a lot and it sweet to have a chance to test it :) 

Patrick Robertson

unread,
Apr 11, 2013, 9:01:23 PM4/11/13
to quicksilver-...@googlegroups.com
OK, I've upped the limit of testers from 5 to 100. You should be able to test now.

The plugin's pretty much ready from my end, but I think @Etienne wanted to change a few things first. How's that going?

I've attached a new copy of the latest version

--
You received this message because you are subscribed to the Google Groups "Quicksilver - Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to quicksilver---deve...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Dropbox Plugin.zip

Etienne Samson

unread,
Apr 12, 2013, 3:11:59 AM4/12/13
to quicksilver-...@googlegroups.com
Le 12 avr. 2013 à 03:01, Patrick Robertson <robertso...@gmail.com> a écrit :

> OK, I've upped the limit of testers from 5 to 100. You should be able to test now.
>
> The plugin's pretty much ready from my end, but I think @Etienne wanted to change a few things first. How's that going?

I wanted to make it more streamlined w.r.t version loading and some other things (using the Catalog for storing things like file versions). And I was waiting for Dropbox to update their SDK but I'm not sure it has happened yet. But it has fallen off my radar for the time being…

Regards,
Etienne Samson
--
samson....@gmail.com

Guy Manchester

unread,
Apr 12, 2013, 3:21:27 AM4/12/13
to quicksilver-...@googlegroups.com
Tried the plugin.

It installs but doesn't ask me to relaunch QS. 

...and…

When I click on "Link Dropbox" it doesn't open my browser. Not even after manually restarting QS.

I tried uninstalling it & went back to the previous iteration of the plugin in this thread. It did ask me to relaunch QS when I double clicked the plugin and when I clicked on "Link Dropbox" in the prefs it did open Dropbox.com




<Dropbox Plugin.zip>

Patrick Robertson

unread,
Apr 12, 2013, 4:12:06 AM4/12/13
to quicksilver-...@googlegroups.com
OK, try again with the attached plugin

Dropbox can be slow with the linking process so you may need to wait a few seconds before Dropbox.com is opened
Dropbox Plugin.zip

Guy Manchester

unread,
Apr 12, 2013, 4:25:13 AM4/12/13
to quicksilver-...@googlegroups.com
Still no joy at first but when I checked in the "Plugins" prefs panel I found 2 instances of "Dropbox". After I removed both & started again it worked as expected.

Thx.

Josh Rich

unread,
Sep 10, 2013, 1:24:10 AM9/10/13
to quicksilver-...@googlegroups.com
Will we see anymore on this plugin? Dropbox access the last tiny obstacle between me and unfettered Quicksilver joy. 
Asked me to relaunch, etc. 

Seems to load up on QS, but then doesn't work. 
Reply all
Reply to author
Forward
0 new messages