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.417 ]
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 acertar hora e data do sistema no linux.
Detecta e bloqueia tentativa de acesso ao SSH
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Converter os repositórios Debian para o novo formato com as chaves
Instalando Spotify no Debian 13
Realizar overclock no Miyoo Mini (plus ou normal)
linux mint reconhece microfone de lapela como fone de ouvido sem micro... (2)
Como desinstalar o GIMP? [RESOLVIDO] (1)