November 2009 Archivos
Mon Nov 30 16:57:10 EST 2009
El NSLU2 como un puente de last.fm a twitter.
Este script nació de la necesidad (ocio?) de actualizar mi estado en twitter con la canción que estaba escuchando en mi iPhone. El detalle esta en que solo actualizara mi perfil si la canción esta marcada como 'loved' en last.fm también detecta que día de la semana es y evalúa si es necesario agregar el hash tag #mm.
twitter_passwd="your_twitter_password_here"'
URL="http://twitter.com/statuses/update.xml"'
tags="#lastfm"'
lastfm_api="<your_api_from_lastfm_here>"'
lastfm_user="<your_lastfm_user_here>"'
bit_ly_user="<your_bit.ly_user_here>"'
bit_ly_apikey="<your_bit.ly_api_key_here>"'
'
fmtwitted=`cat /tmp/lastfm2twitter.tmp | \'
sed -e 's/status=Just played: //g' -e 's/#.*//g' | \'
grep '[a-z]'|sed -e 's/\ //g' -e 's/\-/./g'`'
'
fmcurrent=`curl -s "http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&limit=1&user=$lastfm_user&api_key=$lastfm_api" | \'
grep -E '<name>|</name>|<artist\ |</artist>' |\'
head -n2| sed -e 's/<[^>]*>//g' | tr '\n' '.' |\'
sed -e 's/\ //g' -e 's/.$//g'`'
'
'
lastfm_song_url=`curl -s "http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&limit=1&user=$lastfm_user&api_key=$lastfm_api" |\'
grep -E '<url>|</url>' | sed -e 's/<[^>]*>//g' |\'
head -n1| tr '\n' '.' | sed -e 's/\ //g' -e 's/.$//g'`'
bit_ly_url=`curl -s "http://api.bit.ly/shorten?version=2.0.1&longUrl=$lastfm_song_url&login=$bit_ly_user&apiKey=$bit_ly_apikey" | \'
grep shortUrl | sed -e 's/\"/\ /g' | awk '{print $3}'`'
'
today_mm=`date +%A`'
if [[ $today_mm == "Monday" ]] '
then tags="$tags #mm"'
fi'
'
'
if grep $fmcurrent /tmp/lastfm_loved.tmp > /dev/null'
then if [[ "$fmtwitted" == "$fmcurrent" ]]'
then exit 0'
else curl -s "http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&limit=1&user=$lastfm_user&api_key=$lastfm_api" | \'
grep -E '<name>|</name>|<artist\ |</artist>' |\'
head -n2| sed -e 's/<[^>]*>//g' | tr '\n' '-' | \'
sed -e 's/^[ \t]*//' -e 's/-/\ -\ /g' -e 's/- $//g' -e 's/\ $//g' |\'
awk '{print "status=Just played: "$0}' > /tmp/lastfm2twitter.tmp'
lastfm2twitter=`cat /tmp/lastfm2twitter.tmp; '
echo $bit_ly_url '
echo $tags | tr '\n' ' '`'
echo $lastfm2twitter > /tmp/lastfm2twitter.tmp'
curl -s -u $twitter_user:$twitter_passwd -d @/tmp/lastfm2twitter.tmp $URL > /dev/null'
fi'
else exit 0'
fi'
Como se pueden dar cuenta estoy usando bit.ly para acortar las URLs de last.fm para lo cual tendrán que obtener una API Key. Aun tengo que optimizar el script guardando las peticiones de curl en un archivo y formar algo así como un cache o base de datos local de last.fm a bit.ly.
El script detecta si el mensaje sobrepasa el limite de 140 caracteres permitido por twitter y acorta el mensaje antes de enviarlo.
Tue Nov 3 11:37:17 EST 2009
Script para monitorear recursos del sistema en el NSLU2
Este script muestra la utilización de recursos en el NSLU2 siempre y cuando este corriendo algún firmware de la comunidad (basado en Linux claro). La salida del script produce código HTML simple. Esta hecho en BASH y algo de JavaScript para poder mostrar la información. Esto seria el producto del script:
Código fuente de resources.sh:
Luego puedes redirigir la salida de el script a un archivo en tu RootDirectory. En mi caso estoy usando /resources.js y lo ejecuto cada 5 minutos usando un cronjob.
Código fuente de resources.js:
Luego uso el siguiente código para mostrar la información:
