delicious groovy – Lesezeichen automatisieren

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.

ein Kommentar

  1. […] ähnlichen Artikel habe ich vor einiger Zeit auch für meinen Ex – Lesezeichenverwalter del.icio.us […]

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit deinem WordPress.com-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

%d Bloggern gefällt das: