Que tendrá esa barrita que me vuelve loco …
No, no soy un fanático de las barritas energéticas de Fernando Alonso, quita quita. Estoy hablando de la maravillosa Gnome Deskbar Applet de la cual ya os he hablado en otra ocasión.
Para los que no se acuerden de que va este tema, es un clon de la archiconocida Google Deskbar, una pequeña utilidad que se instala en tu escritorio y te permite hacer multitud de búsquedas dispares. Y cuando digo multitud no me refiero a buscarte en tus archivitos y tal ... me refiero a busquedas brutíjimas, en tu pc, en internet etc etc etc.
Es la herramienta perfecta para el hombre desorganizado de hoy en día. Y ahora direis, bueno sí, que bonito y tal ... pues no ... lo genial de Gnome Deskbar Applet es que podemos crear nuestros propios Handlers (mini motores de búsqueda) que se intengran en la deskbar para incrementar sus prestaciones.
Bonito, al menos en teoría, pues no de nuevo. En la práctica se confirma. Sabeis que soy un apasionado del del.icio.us, que ya no puedo vivir sin estas cosas modernas y tal. Ayer por la tarde me dio tiempo a mirarme el api de del.icio.us crear un par de clases en python para trabajar con ella. En concreto el código que os adjunto abajo sirve para realizar busquedas en tus bookmarks de del.icio.us según los tags con los que marcastes las páginas:
-
import urllib2,base64,libxml2,sys
-
-
class DeliciousTagQueryEngine:
-
-
def __init__(self):
-
"""We need use the globals DELICIOUS_USER and DELICIOUS_PASS"""
-
self._user=DELICIOUS_USER
-
self._pass=DELICIOUS_PASS
-
self._DEFAULT_QUERY_TAG="http://del.icio.us/api/posts/all?tag"
-
-
def get_posts_by_tag(self,tag):
-
url="%s=%s" %(self._DEFAULT_QUERY_TAG,tag)
-
#Get the info from del.icio.us and parse
-
xml=libxml2.parseDoc(self._get_delicious_url(url))
-
postsXML = xml.xpathEval("/posts/post")
-
-
#And return the results
-
posts=[]
-
for post in postsXML:
-
posts.append(DeliciousPost(post))
-
-
return posts
-
-
def _get_delicious_url(self,url):
-
req = urllib2.Request(url)
-
try:
-
handle = urllib2.urlopen(req)
-
except IOError, e:
-
#We need to authenticate
-
base64string = base64.encodestring('%s:%s' % (self._user, self._pass))[:-1]
-
authheader = "Basic %s" % base64string
-
req.add_header("Authorization", authheader)
-
try:
-
handle = urllib2.urlopen(req)
-
except IOError, e:
-
#User or Pass invalid!!!
-
print _("Desklicious info ::: user or pass invalid, please check your params.")
-
return None
-
return handle.read()
-
-
else:
-
#We do not need authentication
-
return handle.read()
-
-
-
class DeliciousPost:
-
-
def __init__(self,data):
-
self.description=data.prop('description')
-
self.href=data.prop('href')
-
self.tags=data.prop('tag').split(" ")
-
self.extended=data.prop('extended')
-
Muy simplote y facil de entender. Pues con estas pequeñas clases, y un par de horillas conseguí desarrollar un handler para la deskbar con el que ahora puedes bichear por tu delicios ....
Maravilloso!! Fantástico !! Aplaudan a los chicos de Deskbar Applet se han currado una aplicación de ensueño.
Aquí os pongo una imagencita para que veais que no miento, de verdad, creedme, FUNCIONA :::
Bueno a todo esto, os dejo aquí un archivo donde está el handler con información de como instalarlo en la barra. Supongo que iré sacando nuevas versiones conforme vaya necesitando más funcionalidad.
Nos vemos por las calles!
