| versions | 0095+ |
|---|---|
| contributors | watz |
| started on | 2006-02-19 06:58 |
del.icio.us is one of the most popular social bookmarking sites out there, and is of interest to information visualizers because of its rich data volume and well-implemented tagging system. External developers can access del.icio.us through the del.icio.us API to read, edit or add posts.
Delicious-java is a Java implementation of the del.icio.us API by David Czarnecki (creator of blojsom). It can be easily be used to access del.icio.us from inside Processing, despite not being written to be a Processing library. In this hack we will look at how it's done.
Download the most recent delicious-java distribution from sourceforge.net/projects/delicious-java/. Make sure to download the ZIP file with dependencies, since delicious-java uses several external libraries. The file name should be something like “delicious-1.9-with-dependencies.zip”.
When you unzip the downloaded archive you will be presented with a number of JAR files. Some of these are utility libraries used by delicious-java, and one contains delicious-java itself. We will use these as drop-in code for our Processing sketch.
Create a new sketch and use “Show Sketch Folder” to access the folder structure. Create a “code” subfolder inside the sketch folder, and copy the JAR files into it. We should now be ready to play.
Please abide by the rules set out by the del.icio.us API page, the most important one being this:
“Please wait AT LEAST ONE SECOND between queries, or you are likely to get automatically throttled. If you are releasing a library to access the API, you MUST do this.”
Any del.icio.us action is possible using delicious-java, including retrieving, editing, adding or deleting posts. For any serious use of the library, you will need to look at the full Javadoc documentation:
http://delicious-java.sourceforge.net/
This simple code shows how to instantiate the Delicious object and retrieve the recent posts from del.icio.us using a username and password. To retrieve all posts, simply use getAllPosts() instead of getRecentPosts(””).
For obvious security reasons, this will not work from an applet.
/** delicious taken from http://processinghacks.com/hacks:delicious @author Marius Watz */ Delicious delicious; void setup() { // Initiate Delicious object. Replace username and password with your own info. delicious=new Delicious("username","password"); // Retrieve recent posts. The result is a List object containing the // Posts as del.icio.us.beans.Post objects. We'll use List.toArray() to // give us an array of the Objects in the List. Object [] o=delicious.getRecentPosts("").toArray(); // Uncomment the following line to get all posts. // Object [] o=delicious.getAllPosts().toArray(); // Convert the Objects to Posts Post [] posts=new Post[o.length]; for(int i=0; i<posts.length; i++) posts[i]=(Post)o[i]; // Print the posts println("Del.icio.us posts retrieved: "+posts.length); for(int i=0; i<posts.length; i++) println(i+": "+posts[i]); }
You can download the most recent delicious-java distribution from sourceforge.net/projects/delicious-java/. Make sure to download the ZIP file with dependencies, since delicious-java uses external libraries.