Uno Cortito: Error en pidgin-last.fm

Buscando como reflejar lo que estoy escuchando en el estado de Pidgin, me encuentro con el plugin pidgin-lastfm.
Si bien se encuentra en los repositorios de ubuntu 9.04 al ver que no funcionaba busco actualizaciones.
El plugin posee una opcion de búsqueda de actualizaciones que informa cuando hay versiones recientes. Es asi como me dirigo al sitio en sourceforge para instalar la última version.
Grande es mi desilusión cuando aún asi no funciona :(.
Dando vueltas me encuentro con dos novedades:
- Para que funcione, se debe indicar con %s donde se desea que aparezca el nombre del tema (posiblemente la versión de repositorios funcione con este detalle). Yo lo uso en el estado.
- La versión 4a introdujo cambios que no funcionan (ver con pidgin -d)
Parche
La version 0.4a de pidgin-lastfm utiliza la nueva API documentada en http://www.lastfm.es/api
Para los ansiosos les adelanto que para que esto funcione, se debe modificar una linea en el archivo lastfm.pl (que yo instalé en /usr/lib/pidgin/lastfm.pl). Se debe modificar la linea 429 (aprox) de la siguiente manera:
# Build URL to retrieve from Audioscrobbler
sub build_url {
my $protocol = "http://";
my $hostname = "ws.audioscrobbler.com";
my $username = Purple::Prefs::get_string("/plugins/core/lastfm/username");
#my $content = Purple::Prefs::get_string("/plugins/core/lastfm/content");
my $content = "user.getRecentTracks";
my $uri = "/2.0/?method=" . $content ."&user=". $username . "&api_key=" . $apikey;
my $url = $protocol . $hostname . $uri;
return $url;
}La línea comentada es la original. Cambié la linea para forzar el método utilizado.
Para quienes quieran saber como llegué hasta la modificación, sigan leyendo.
El mensaje de error indica que hay un error con el metodo utilizado:
(08:10:09) lastfm: Callback function for HTTP request called. (08:10:09) lastfm: Huh? We got an error message from the server ... (08:10:09) lastfm: Invalid Method - No method with that name in this package (08:10:09) lastfm: Skipping status message changing. (08:10:09) lastfm: Reset timeout to 10 seconds.
El método se almacena en la variable $content que se define en una linea similar a la siguiente:
Purple::Prefs::add_string("/plugins/core/lastfm/content", "user.getRecentTracks");Al querer cargar la variable $contet
my $content = Purple::Prefs::get_string("/plugins/core/lastfm/content");Queda almacenado recenttrack en lugar de user.getRecentTracks. El porque sucede esto, se lo dejo a quien este interesado, o para cuando tenga un rato de ganas.
Espero despeje alguna duda. Saludos
