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.403 ]
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 modificar Encoding de UTF-8 para ISO-8859-1
E-mails através de um servidor remoto
Configuração de rede no Virtualbox
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Máquina perereca - até onde é possível o uso de Linux?
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Debian 13 Trixie para Iniciantes
Convertendo pacotes DEB que usam ZSTD (Padrão Novo) para XZ (Padrão Antigo)
Debian 13 "trixie&... lançado! (43)
baschrc customizado pegeui vários. (1)
eu tive uma idéia, mas mais privada sobre o assunto de mu online e ser... (7)
como posso instalar o anbox e como inicio ele para funcionar arquivos ... (10)