Enviando faixas tocadas no Amarok 2 para o Twitter
Publicado por Elder Marco (última atualização em 22/10/2009)
[ Hits: 5.846 ]
Homepage: http://www.eldermarco.com
Um script simples que publica o que você está ouvindo atualmente no Amarok 2 direto no seu Twitter, utilizando o curl. :-)
#!/bin/bash
#
# Envia uma música que você está ouvindo no Amarok 2
# para o Twitter.
#
# Autor: Elder Marco/ www.idiossincrasias.com
# Data: 20/10/2009
#-------------------------------------------------------------------
# Você pode salvar sua senha e usuário num arquivo oculto no seu diretório
# $HOME ou inserá-las aqui. Das duas maneiras, essa informação estará
# salva em um arquivo texto. Se for inserir no arquivo texto, crie-o
# com seu editor de textos preferido:
#
# $ vi ~/.amarok2twitter
#
# Insira então os dados no arquivo usando as variáveis username e senha:
# Ex.:
# username="ElderMarco"
# senha="SenhadoElderMarco"
#
# e pronto. Alternativamente, você pode não definir a senha em lugar
# nenhum (ou definir como "perguntar") e então o script irá pedir ela
# a você toda vez que quiser enviar o que está ouvindo para o Twitter.
if [ -e $HOME/.amarok2twitter ]; then
. $HOME/.amarok2twitter
else
# Só altere aqui se você quer definir isso no próprio script.
username="UserName"
senha="perguntar"
fi
# Se não foi definida no arquivo nem no script. O usuário será questionado
# sobre ela.
senha=${senha:-"perguntar"}
if [ "$senha" = "perguntar" ]; then
read -sp "Senha do Twitter: " senha
echo
fi
# O Amarok está rodando?
rodando=`ps -e | grep 'amarok$'`
[ -z "$rodando" ] &&
{
echo -n "O Amarok não está em execução. Saindo... "
sleep 1; echo; exit 1
}
# Bom, então vamos obter algumas informações sobre metadados da faixa
# em execução. A idéia veio do plugin music para o AMSN.
artista=`qdbus org.kde.amarok /Player GetMetadata | fgrep artist`
musica=`qdbus org.kde.amarok /Player GetMetadata | fgrep title`
album=`qdbus org.kde.amarok /Player GetMetadata | fgrep album`
# Retirando coisas desnecessárias.
artista=${artista/"artist: "/""}
musica=${musica/"title: "/""}
album=${album/"album: "/""}
# Formato da Mensagem a ser enviada. Se o álbum não foi definido, ele
# será omitido. No entanto, nome da música e artista são obrigatórios.
if [ -n "$musica" -a -n "$artista" ]; then
if [ -n "$album" ]; then
msg="♫ Ouvindo \"$musica\" por \"$artista\" do álbum \"$album\" [Amarok 2]"
else
msg="♫ Ouvindo \"$musica\" por \"$artista\" [Amarok 2]"
fi
else
echo "Não foi possível obter nome do artista ou nome de música."
echo "Verifique os metadados do arquivo em questão."
exit 1
fi
# Mais de 140 caracteres?
[ ${#msg} -ge 140 ] &&
{
echo "Putz! Que azar! A mensagem a ser enviada possui mais de 140 caracteres."
echo "Se ela for enviada, será truncada."
read -n1 -p "Deseja mandar mesmo assim?[s/N] " sn
[ "$sn" = N -o "$sn" = n -o ! "$sn" ] &&
{
exit 1
}
}
# Por fim, envia para o Twitter.
echo -n "Enviando... "
curl --basic --user $username:$senha \
--data status="$msg" http://twitter.com/statuses/update.xml \
1>/tmp/amarok2twitter.$$ 2>&1
# Será que teve sucesso na autenticação e publicou o Tweet?
if ! grep "Could not authenticate you." /tmp/amarok2twitter.$$ 1>/dev/null ; then
echo "pronto."
else
echo "falhou. :("
fi
rm /tmp/amarok2twitter.$$
Script para enviar email, avisando quando alguem loga na maquina
Pesquisando arquivos interativamente...
Instalação de programas no Ubuntu Linux
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
[Resolvido] VirtualBox can't enable the AMD-V extension
Como verificar a saúde dos discos no Linux
Como instalar , particionar, formatar e montar um HD adicional no Linux?
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Fiz uma pergunta no fórum mas não consigo localizar (13)
Quais os códigos mais dificeis que vcs sabem fazer? (2)
Não consigo instalar distro antiga no virtualbox nem direto no hd (7)
Servidor Ubuntu 24.04 HD 500 não tenho espaço na \home\adminis... [RES... (8)
Dá para criar um bom jogo usando a linguagem de programação C? [RESOLV... (1)









