Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · NoticiasLinux · SoftwareLivre.org · UnderLinux · BestLinux
» Screenshot
Linux: SS antigo FC2 + Gnome
Por darfman



» Login
Login:
Senha:

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

Esqueci minha senha

» Wallpaper
Linux: Pinguim em ASCII Colorido
Por mascote24


Scripts

Linux user

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

Login: eldermarco, 49934 pontos

Homepage: http://www.muitosmundos.wordpress.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 Verificando espaço de Disco usando Dialog
   Script Linux recomendado INICIAR SERVIÇOS
   Script Linux recomendado Cadastro em shell
   Script Linux recomendado Script Admin PDC
   Script Linux recomendado Contador simples

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
CAPTCHA
[ Recarregar imagem ]

Digite o código acima:

  
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.