Ver último twitter pelo terminal ou na barra de notificação
Publicado por Raimundo Alves Portela (última atualização em 29/09/2011)
[ Hits: 6.375 ]
Homepage: http://portelanet.com
Download alertaTwitter_v1.0.tar.gz
Após descobrir um ótimo script para envio de mensagens para o twitter pelo terminal (http://360percents.com/posts/command-line-cwitter-status-update-for-linux-and-mac), resolvi brincar um pouco e adaptá-lo para outras situações.
O script alertaTwitter.sh mostra o ultimo twitter recebido no terminal e atualiza de tempos em tempos, sendo que o padrão é 60 segundos, mas pode ser definido outro valor passando por parâmetro.
./alertaTwitter.sh -t usuario senha -t VALOR_EM_SEGUNDOS
Se o yad estiver instalado, será apresentado um ícone da barra de notificação (ao lado do relógio), o que permitirá visualizar o último tweet passando o mouse sobre o ícone que aparecerá na barra, caso for clicado abrirá o firefox com a url desse tweet.
Se quiserem conhecer mais sobre o yad vejam: http://www.vivaolinux.com.br/artigo/Apresentando-o-Yad-zenity-melhorado
Se quiserem ver as opções disponível use:
alertaTwitters.sh -h
'-c'|'--console' Mostra os twitters no terminal
'-n'|'--notification' Mostra os twitters na barra de notificação
Para finalizá-lo:
./alertaTwitter.sh -k
Espero que gostem ;-)
#!/bin/bash # alertaTwitter_v1.0 # Desenvolvido por: Raimundo Portela - rai3mb@gmail.com # A base funcional desse script está disponível em: # http://360percents.com/posts/command-line-cwitter-status-update-for-linux-and-mac/ # # O script mostra o ultimo twitter recebido, se tiver instalado o yad # é apresentado um ícone da barra de notificação (ao lado do relógio) # que permite visualizar o ultimo tweet, caso for clicado abre # o firefox com a url desse tweet. # Se quiserem conhecer mais sobre o yad: # http://www.vivaolinux.com.br/artigo/Apresentando-o-Yad-zenity-melhorado/ # # Sintaxe de uso: # Uso alertaTwitters.sh usuario senha #tempo entre as consultas ao twitter sem segundos sleeptempo=60 # a cada 1 minuto [ ! -z "$5" ] && sleeptempo="$5" GRAFICO="yad" [ -z "$1" ] && echo -e "Sintaxe ./alertaTwitters.sh [-k]\n./alertaTwitters.sh [-c|-n] usuario senha [-t N ]" && exit arq_cookie="/tmp/cookie.txt" APLICATIVO=$(whereis "$GRAFICO" | cut -d " " -f 2) function _getConn() { echo -n > "$arq_cookie" #REQUIRED PARAMS (Parâmetos requeridos) # valida se o usuario e senha foram informados [ -z "$1" -a -z "$2" ] && echo "Sintaxe ./alertaTwitters.sh [-c|-n] usuario senha" && exit username="$1" password="$2" #EXTRA OPTIONS (Opções extras) uagent="Mozilla/5.0" #user agent (fake a browser) touch "$arq_cookie" #create a temp. cookie file #INITIAL PAGE initpage=$(curl -s -b "$arq_cookie" -c "$arq_cookie" -L --sslv3 -A "$uagent" "https://mobile.twitter.com/session/new") token=`echo "$initpage" | grep "authenticity_token" | sed -e 's/.*value="//' | sed -e 's/" \/>.*//'` #LOGIN loginpage=`curl -s -b "$arq_cookie" -c "$arq_cookie" -L --sslv3 -A "$uagent" -d "authenticity_token=$token&username=$username&password=$password" "https://mobile.twitter.com/session"` } function _getNewTwitter() { #HOME PAGE homepage=`curl -s -b "$arq_cookie" -c "$arq_cookie" -L -A "$uagent" "http://mobile.twitter.com/"` echo "$homepage" > /tmp/home.html while read LINHA do echo "$LINHA" | egrep -q '<strong><a href="http://mobile.twitter.com' [ $? -eq 0 ] && USUARIO=$(echo "$LINHA" | sed 's/<[^>]*>//g') && continue echo "$LINHA" | egrep -q '<span class="status">' [ $? -eq 0 ] && FRASE=$(echo "$LINHA" | sed 's/<[^>]*>//g') && continue nUSUARIO=$(echo "$USUARIO" | tr '[A-Z]' '[a-z]') echo "$LINHA" | egrep -q "/$nUSUARIO/status/[0-9]*" if [ $? -eq 0 ]; then URL_FRASE=$(echo "$LINHA" | egrep -o "/$nUSUARIO/status/[0-9]*") URL_FRASE="http://twitter.com$URL_FRASE" else continue fi [ "$FRASE" ] && [ "$USUARIO" ] && break done < "/tmp/home.html" #retorno da função echo "$USUARIO|$FRASE|$URL_FRASE" } function _alertaYad() { [ ! -x "$APLICATIVO" ] && echo "Você precisa do yad instalado" && exit _getConn "$1" "$2" while : do RETORNO=$( _getNewTwitter ) echo $RETORNO | egrep -q '.*\w+.*\|.*\w+.*\|.*\w+.*' if [ "$?" -eq 0 ]; then USUARIO=$(echo "$RETORNO" | cut -d'|' -f 1) FRASE=$(echo "$RETORNO" | cut -d'|' -f 2) URL_FRASE=$(echo "$RETORNO" | cut -d'|' -f 3) # faz a saída padrão não aparecer no terminal exec 1> /dev/null # faz o mesmo para a saída de ERROS exec 2>&1 kill "$PID" if [ ! "$FRASE" == "$OLDFRASE" ]; then yad --notification --image="msg.png" \ --text "$USUARIO -> $FRASE" --command "firefox $URL_FRASE" & PID="$!" else yad --notification --image="new.png" \ --text "$USUARIO -> $FRASE" --command "firefox $URL_FRASE" & PID="$!" fi else echo "ERRO NO $0 : Verifique seu usuário e senha" && exit 1 fi OLDFRASE="$FRASE" sleep $sleeptempo done } case "$1" in '-c'|'--console') _getConn "$2" "$3" while : do RETORNO=$( _getNewTwitter ) echo $RETORNO | egrep -q '.*\w+.*\|.*\w+.*' if [ "$?" -eq 0 ]; then USUARIO=$(echo "$RETORNO" | cut -d'|' -f 1) FRASE=$(echo "$RETORNO" | cut -d'|' -f 2) if [ ! "$FRASE" == "$OLDFRASE" ]; then echo -en "{FONTE}33[32;1m$USUARIO{FONTE}33[m -> " FRASECOR=$(echo "$FRASE" | sed 's/@\w*/\{FONTE}33[34;1m{FONTE}\{FONTE}33[m/g' | sed 's/#\w*/\{FONTE}33[36;1m{FONTE}\{FONTE}33\[m/g') echo -e "$FRASECOR" fi OLDFRASE="$FRASE" else echo "ERRO NO $0 : Verifique seu usuário e senha" && exit 1 fi sleep $sleeptempo done ;; '-n'|'--notification') _alertaYad "$2" "$3" & pid="$!" echo "$pid" > /tmp/pid_pai.temp echo " A aplicação está executando em segundo-plano (background) com o PID $pid Para finalizá-la corretamente, execute o comando: $0 -k " ;; '-k'|'--kill') MORRA=$(cat /tmp/pid_pai.temp) && [ "$MORRA" ] && kill -15 $MORRA 2>/dev/null ps aux | grep "yad --notification" > /tmp/pid.temp while read LINHA do MORRA=$(echo $LINHA | cut -d' ' -f 2) kill -15 $MORRA 2>/dev/null done < /tmp/pid.temp ;; '-h'|'--help') echo " '-c'|'--console') Mostra os twitters no terminal '-n'|'--notification') Mostra os twitters na barra de notificação '-k'|'--kill') Finaliza a aplicação desobediente ;-) ./alertaTwitters.sh [-c|-n] usuario senha [-t N ] " ;; *) echo "Entrada inválida!";; esac
Script para autenticação Velox Empresarial
Monitore vários servidores ao mesmo tempo com Apache + shellscript
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Quebra de linha na data e hora no Linux Mint
Organizando seus PDF com o Zotero
tentando instalar em um notebook antigo o Linux LegacyOS_2023... [RESO... (9)
Problema com Conexão Outlook via Firewall (OpenSUSE) com Internet Fibr... (5)