Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Ubuntu 10.04
Por ChacalRN
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Scripts

Linux user

Publicado por Elder Marco em (última atualização em 22/10/2009)   [ 2045 hits ]

Login: eldermarco, 156609 pontos

Homepage: http://blog.eldermarco.com   


Descrição

Um script simples que publica o que você está ouvindo atualmente no Amarok 2 direto no seu Twitter, utilizando o curl. :-)

[ Download: amarok2twitter ]   [ Enviar nova versão ]

[ Esconder código-fonte ]

#!/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.$$

Scripts recomendados
   Script Linux recomendado lines.sh
   Script Linux recomendado Script simples para gerenciar netcat
   Script Linux recomendado Pesquisar artigos no VOL
   Script Linux recomendado Script para testar a conexão do computador
   Script Linux recomendado Script para screenshots

Comentários
[1] Comentário enviado por eldermarco em 22/10/2009 - 10:34h:

Só aquele código ♫ é que não tem no script. No original é um símbolo mais bonito. Quando publiquei, percebi que havia sido trocado. :-)



[2] Comentário enviado por lcnrj em 18/05/2010 - 19:11h:

Tem como funcionar no amarok 1.4??

[3] Comentário enviado por eldermarco em 18/05/2010 - 20:04h:

Não, a maneira de se obter informação nos aplicativos do KDE 4 para frente é diferente da do KDE 3.5.x, até onde eu sei. No KDE 4 pode-se user o qdbus para se comunicar com o aplicativo, como foi feito nesse script. No Amarok 1.4, essa comunicação é feita com o comando dcop, de maneira que você teria de fazer as alterações necessárias no script. Seria apenas trocar algumas linhas. Eu não fiz aqui porque não uso o Amarok 1.4 pra testar, mas lhe deixo um link que contém exemplos de como fazer isso:

http://tuxomaniac.wordpress.com/2008/12/30/amarok-music-tracker-for-pidgin/



Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.