groovy zootool – Lesezeichen automatisieren

.wraptocenter {
display: table-cell;
text-align: center;
vertical-align: middle;
width: …;
height: …;
}
.wraptocenter * {
vertical-align: middle;
}
/**//*/
.wraptocenter {
display: block;
}
.wraptocenter span {
display: inline-block;
height: 100%;
width: 1px;
}
/**/


.wraptocenter span {
display: inline-block;
height: 100%;
}


Einen ähnlichen Artikel habe ich vor einiger Zeit auch für meinen Ex – Lesezeichenverwalter del.icio.us geschrieben.

Mein neuer Dienstleister ist zootool. Über die Gründe des Wechsels habe ich ja erst vor kurzem geschrieben.
Wenn man sich in eine neue Abhängigkeit begiebt, sollte alles Gute erhalten bleiben. So bietet auch zootool über eine API den Zugriff auf die Lesezeichen.

Anders als bei del.icio.us werden die Ergebnisse einer Anfrage aber im JSON Format geliefert, womit das HTTPBuilder Modul von Groovy aber auch keine Probleme hat, wie das Beispiel gleich zeigen wird. Ein verschlüsseltes Passwort und ein API-Key sorgen zusätzlich für mehr Sicherheit.

So, lange genug geredet. Hier ist der Code für einen einfachen zootool Lesezeichen Client:

package de.koo.groovy.rest

@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.5.1' )

import groovyx.net.http.* 
import groovy.util.slurpersupport.GPathResult 
import java.security.MessageDigest
import sun.misc.*

public class ZootoolBookmarkClient{
  def username
  def password
  def apikey
  
  public ZootoolBookmarkClient() {
    username=""
    password=""
    apikey=""
  }
  
  static void main(args) {
    def dc=new ZootoolBookmarkClient()
    dc.request()
  }
  
  /**
   * Lesezeichen abfragen und Aufbereitung der Ergebnisse 
   * im HTML Format als definition list
   */
  public request () {
    def resp
    
    try {
      // Authentifizierung
      def url="http://zootool.com/api/users/items/?username=$username&apikey=$apikey"
      
      RESTClient rc = new RESTClient( url )
      rc.auth.basic (username.toLowerCase(), getEncodedPassword())
      
      // anfragen und überprüfen der Antwort
      def params=[:]   
      resp=rc.get(params)
      
      assert resp.status == 200
      
      println "
" resp.data.each {item -> println "
${item?.title}
" println "
${item?.title}
" } println "
" } catch (e) { e.printStackTrace() } } /** * Passwort Verschlüsselung mit SHA-1 Algorithmus */ public getEncodedPassword () { MessageDigest md = MessageDigest.getInstance('SHA-1') md.update(password.getBytes('UTF-8')) return (new BASE64Encoder()).encode(md.digest()) } }

Ich wünsche Euch allen (mit und ohne gepflegten Kater) ein frohes und gesundes Jahr 2011.

Zum Schluss noch ein paar hilfreiche Links:

zootool API-Key Generierung
zootool API Doku
Beispiel Code für PHP, Python und Objective-C

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: