Gourmand

Gourmand automatically imports links from other sites you use into delicious. You simply provide it with your account details on each and set up a cron job to run it regularly. It takes care of the rest.

Notes on behaviour

  • Gourmand currently imports twitter, reddit and stumbleupon, but that's purely a function of the fact that those are the ones I use at the moment. It could easily do more.
  • Links are tagged with via:source, plus any tags that can be obtained from there. They are tagged imported_by:gourmand if you don't already have a bookmark of that name.
  • The date on the link will be set to that at which the URL was initially posted on the source site, not the time you imported it (which plays badly with historical data) or the time you up voted it (which doesn't seem to be available information everywhere).
  • It will import all your history, so the initial run will take a while.
  • It's still rather slow. There's a mixture of reasons for this - it's written in Ruby, it generate a fair bit of HTTP traffic and it deliberately rate limits itself in a lot of cases. The single biggest reason though is that I don't particularly care and I haven't optimised it. It's intended to be run a couple times an hour by an automated task, and you have to hit pretty damn heavy traffic before it's too slow for that.
  • Twitter support will pull in any URLs mentioned on your friends time-line, automatically tagging them based on delicious suggestions and tagging them with information about who it was to and from.

General comments

  • The code is currently a bit grim in places. Some of this is inevitable - site scraping is never going to look pretty - some of it will probably be cleaned up at various points.
  • Patches are exceedingly welcome. There are a pile of sites this could reasonably import from, and I don't use so much as a tenth of them. If you want this to handle your favourite social bookmarking or similar site, please feel free to submit a patch.
  • I'm currently changing the internal format on a semi regular basis as I figure things out. Once I've got an actual release out I'll have a proper versioning system for upgrades, etc. but I don't yet.