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.426 ]
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 em Bash para gerenciar as novas versões do Java e permitir escolher a versão pa
Instala os modulos de bateria dos notebook da Acer
Instalação do Cacti v0.8.7g + Plugins
O que é o THP na configuração de RAM do Linux e quando desabilitá-lo
Comparação entre os escalonadores BFQ e MQ-Deadline (acesso a disco) no Arch e Debian
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)
Como unir duas coleções de ROMs preservando as versões traduzidas (sem duplicatas)
Como instalar o Telegram Desktop no Ubuntu 24.04
Overclocking Permanente para Drastic no Miyoo Mini Plus
Problemas de chaves (/usr/share/keyrings) no Debian
Converter os repositórios Debian para o novo formato com as chaves
Problema com audio apos upgrade (2)
eu preciso saber uma coisa sobre os games no linux (3)
eu preciso saber uma coisa sobre os games no linux (1)