lunes, 24 de marzo de 2008

Configurando protocolo ed2k en Opera con MLDonkey

Vamos a ver como configurar Opera corriendo sobre Linux para que cuando clickeemos sobre una URL de la forma ed2k:// el download correspondiente se agregue a la núcleo MLDonkey que está corriendo en el sistema (o en algún sistema remoto).

Para esto cerramos Opera y editamos el archivo $HOME/.opera/opera6.ini agregando bajo la sección [User Prefs] la línea TrustedExternalURLProtocols=ed2k. Si esta entrada ya existe es posible agregar protocolos adicionales separando los identificadores por comas simples. Guardamos los cambios, cerramos el archivo y reabrimos Opera.

Luego vamos a Tools -> Preferences, luego el tab Advanced y por último la sección Programs. Ahí clickeamos el botón 'Add...', escribimos 'ed2k' en el campo Protocol, seleccionamos Open with other application y escribimos la ruta al siguiente script, que tenemos que guardar a disco y dar permisos de ejecución:

#!/bin/bash

USER='admin'        # u otro usuario en caso de haberlo configurado
PASS='password'     # el password de la cuenta
HOST='localhost'    # el host donde corre el núcleo MLDonkey
PORT='4000'         # el puerto en el que corre

STDOUT=`( sleep 0.1 ;
          echo "auth $USER $PASS" ;
          sleep 0.1 ; echo "dllink $1" ;
          sleep 0.1 ;
          echo "q") | telnet $HOST $PORT 2>&1`

if [[ "$STDOUT" =~ 'Unable to connect to remote host' ]]; then
    kdialog --error "Unable to connect to MLDonkey server"
elif [[ "$STDOUT" =~ 'Unable to match URL' ]]; then
    kdialog --error "Unable to match URL:\n$1"
elif [[ "$STDOUT" =~ 'Added link' ]]; then
    kdialog --msgbox "Added link:\n$1"
else
    kdialog --error "Error:\n$STDOUT"
fi



El script utiliza telnet para acceder al núcleo (habilitado por defecto en MLDonkey), por lo que es bueno verificar que que esta conexión esté funcionando (telnet localhost 4000). En caso de estar utilizando la cuenta admin sin password, el primer sleep y el auth no serían necesarios. Como se puede ver el script concatena la salida estándar de un conjunto de comandos y la conecta a la entrada estándar de una llamada a telnet, almacenando la salida estándar de este último en una variable. Luego examina la salida almacenada y utiliza kdialog para generar un mensaje de éxito o error, según corresponda.

Ahora con simplemente clickear en un link con url de la forma ed2k://... la descarga se agrega al MLDonkey e inicia automáticamente.

1 comentario:

Chuso Pérez dijo...

Te propongo una alternativa:

http://chuso.net/?id=64