Escribe en Nótame.net desde KDE

Se ha puesto de moda hacer cosas con la API de Nótame.net y como yo soy un envidioso, me he puesto a jugar un poco con el kdialog para hacer una sencilla herramienta para publicar tus notas desde el KDE.

La cosa es simple, la primera vez te pide tu usuario y tu clave api, que puedes verla en el perfil de tu usuario de Meneame.net. Una vez configurado, ya puedes enviar mensajes. Simple, simple.

La configuración se guarda en un fichero oculto de tu «home» llamado ~/.notame.api. Con borrar ese fichero ya puedes volver a configurarlo.

El código (cutre cutre) es este.

#!/bin/bash
if [ -f ~/.notame.api ]; then
CLAVEAPI=$(cat ~/.notame.api)
else
USUARIO=$(kdialog --title "Configurando tu cuenta de Nótame.net" --inputbox "Introduce tu usuario")
PASS=$(kdialog --title "Configurando tu cuenta de Nótame.net" --password "Introduce tu clave API")
echo "user="$USUARIO"&key="$PASS > ~/.notame.api
CLAVEAPI=$(cat ~/.notame.api)
fi

TEXTO=$(kdialog --title "Enví­a un nuevo mensaje a Nótame.net" --inputbox "¿Qué estás haciendo?")

if [ -n "$TEXTO" ]; then
wget "http://meneame.net/api/newpost.php?$CLAVEAPI&text=$TEXTO" &> /dev/null
fi

Si quieres puedes bajar el fichero.

Le das permisos de ejecución (chmod +x notame.sh) y a probarlo.

Primero configuramos el nombre de usuario:
notame-1

Luego metemos la clave api:
notame-2

Estos pasos ya no tendremos que hacerlos más. Ahora siempre que lo ejecutemos tendremos directamente esta opción:
notame-3

Ya puedes anotar lo que quieras desde KDE. :)

Por cierto, insisto, es una chapucilla, modificarlo es de obligación, comentarme los cambios es voluntario. :)

P2P en 6 lí­neas de perl

Impresionante el código del P2P en perl, en tan sólo 6 lí­neas. Aunque hay una versión más larga y explicada.
$/=$_;$,=shift;$w=$a=shift;$k{+shift}=1;socket S,2,1,6;bind S,&a;for(listen
S,5;$SIG{ALRM}=&i;m! (S+) ([e-i])([^/]*)/!s&&($k{$w=$1}=$,eq$`)&&&$2){alarm
9;(accept(C,S),alarm 0)?read C,$_,1e6:($_="$, $a f".shift)}sub i{}sub t{socket
C,2,1,6;$k{$w}&&=(connect C,&a)?print C"$, ".pop:0;close C}sub h{t"$_ i/"for
keys%k}sub a{$w=~/:/;pack'CxnC4x8',2,$',split'.',$`}sub f{$w=$_,t"$1 $3/"for
keys%k}sub e{open C,'>',$3;print C $'}sub g{open(C,'<',$3)&&t"$a e$3/".;&h}

Visto en aNieto2K.