Dass meine Beiträge für die Kategorie weekly links eine Zeit lang pausiert haben, lag auch daran, dass mich das Kopieren der Links ziemlich genervt hat.
Was macht man also als Programmierer, wenn der Leidensdruck hoch genug ist – man liest eine API (in diesem Fall die von delicious.com), nimmt die Programmiersprache seiner Wahl (bei mir Groovy) und schafft Abhilfe.
Der Urvater der online Lesezeichenverwalter delicious.com stellt eine REST basierte API bereit. Groovy händelt die HTTP Anfrtagen und erleichtert das XML Parsen der Antworten.
Testen kann man erst einmal auf der Kommandozeile mittels curl
:
curl https://user:passwd@api.delicious.com/v1/posts/recent
Bestimmte URL’s wie z.B. posts/all
sollte man nicht zu oft aufrufen, da sie limitiert sind. Macht man es doch (wie ich) erhält man den Fehler 999. Besser ist es da nur die letzten Einträge (per Default 15) über posts/recent
anzufragen. Das ganze Programm sah dann bei mir so aus:
import javax.net.ssl.HttpsURLConnection class DeliciousBookmarkClient { static main(args) { def dc=new DeliciousBookmarkClient() dc.request() } public request(){ Authenticator.setDefault(new Authenticator() { PasswordAuthentication getPasswordAuthentication() { def username = "username" def pass = "password" return new PasswordAuthentication(username,pass.toCharArray()) } }) def url = new URL("https://username:password@api.delicious.com/v1/posts/recent") def conn = (HttpsURLConnection)url.openConnection() def xml=conn.content.text this.toHtml(xml) } public toHtml(xml){ def posts = new XmlSlurper().parseText(xml) def recentPosts=posts.post println "Anzahl posts "+recentPosts.size() // HTML Aufbereitung des Links und der Beschreibung println "<dl>" recentPosts.each{post-> def desc=post.@description.text() def href=post.@href.text() println " <dt><a href=\"${href}\">$desc</a></dt>" println " <dd>${desc}</dd>" } println "</dl>" } }
Über die API lassen sich natürlich auch Lesezeichen hinzufügen und löschen. Das gilt auch für Tags und Tag Bundles. Damit bleiben keine Wünsche offen.
[…] ähnlichen Artikel habe ich vor einiger Zeit auch für meinen Ex – Lesezeichenverwalter del.icio.us […]