Eu vejo gente morta. Descubra se alguém já morreu!

Publicado por Marcos Paulo Ferreira (última atualização em 09/08/2010)

[ Hits: 8.773 ]

Homepage: http://daemoniolabs.wordpress.com

Download euVejoGenteMorta




Esse script recorre ao sobrenatural e faz uma análise minuciosa nos bancos de dados do céu e do inferno. O total de registros é aproximadamente 106 bilhões, que é o total estipulado de pessoas que já pisaram na face da terra (thanks wikipedia ...).

Somente esse script tem acesso a esses bancos de dados e forças malígnas regem sobre ele. Então, por isso, após usá-lo,  apague-o imediatamente do computador. Usou rm? Você ainda está com problemas, utilize algo como um 'shred -n 70' para que não reste nenhum vestígio dele.

=[ Uso ]=

$ ./euVejoGenteMorta 'Nome da pessoa'

ex:

$ ./euVejoGenteMorta 'Michael Jackson'
Michael Jackson está morto.

o.O ??

----------
Spoiler
----------
O script simplesmente consulta um banco de dados online de pessoas mortas. Dãã, acho que já dava pra perceber, né? xD

O site é http://www.deadoraliveinfo.com e foi o melhorzinho que encontrei. O banco de dados dele não possui muitos nomes, mas já dá pra brincar um pouco. E outra, o banco de dados só agrega pessoas famosas (políticos, cantores, atores etc) então uma pesquisa pelo nome do vizinho ou do pipoqueiro da esquina, não irá resultar em nada (espero eu ...).

=[ Dependencias ]=
--> lynx para acessar a página via terminal.

Acho que é só isso.
t+

  



Esconder código-fonte

#!/bin/bash
# Autor: Daemonio (Marcos Paulo Ferreira)
# Contato: undefinido at gmail com
# Script: euVejoGenteMorta
#
# =[ Linha do Tempo ]=
# Qua Jul 28 07:15:11 BRT 2010 -- Inicio
# Sex Jul 30 20:37:46 BRT 2010 -- Fim do script basico
# Sex Jul 30 22:31:16 BRT 2010 -- Fim da primeira versao
#
# =[ Dependencias ]=
# --> lynx
#
# =[ Descricao ]=
# Script que mostra se determinada pessoa esta morta. O nome
# da pessoa e' passado como parametro.
# OBS: Se a pessoa esta morta ou nao, depende do banco
# de dados do site http://www.deadofaliveinfo.com. O banco
# de dados da' preferencia a pessoas famosas como
# cantores, politicos, atores, etc.
#
# =[ Uso ]=
# O nome da pessoa deve vir como primeiro parametro na linha
# de comando. Veja o uso das aspas simples para incluir o
# nome completo como um so parametro.
# 
# ex:
# $ ./euVejoGenteMorta 'Michael Jackson'
# Michael Jackson esta morto.
# 

# URL completa da pesquisa.
E_DEATH_LINK='http://www.deadoraliveinfo.com/dead.nsf/search-nf?'
E_DEATH_LINK="${E_DEATH_LINK}SearchView&Query=%28[SearchCompound]+contains+%28"
E_DEATH_LINK="${E_DEATH_LINK}=NAME_HERE=+and+dead%29%29&SearchOrder=1&Start=1&"
E_DEATH_LINK="${E_DEATH_LINK}Count=50&SearchMax=500&SearchWV=TRUE&SearchThesau"
E_DEATH_LINK="${E_DEATH_LINK}rus=TRUE"

# Arquivos temporarios
DEATH_FILE="/tmp/death_list.$$"
FOUND_FILE="/tmp/found_list.$$"

usage_help() {
    echo '== euVejoGenteMorta 1.0 =='
    echo 'by Daemonio (undefinido at gmail com)'
    echo
    echo 'Script que comunica com o ceu e com o inferno e diz'
    echo 'se alguem ja morreu.'
    echo
    echo '[uso] euVejoGenteMorta <nome>'
    echo 'ex:'
    echo "   $ ./euVejoGenteMorta 'Michael Jackson'"
    exit
}

#
# Verifica se temos o primeiro parametro,
# se nao, imprime a ajuda e finaliza o script.
#
[ -z "$1" ] && usage_help

#
# Se o parametro for 'Michael Jackson' entao $NAME_WITH_PLUS sera
# 'Michael+Jackson'. Logo depois a variavel SEARCH_LINK ira ter
# a URL da pesquisa que sera feita pelo lynx.
#
NAME_WITH_PLUS=$(echo $1 | sed 's/ /+/g')
SEARCH_LINK=$(echo $E_DEATH_LINK | sed "s/=NAME_HERE=/$NAME_WITH_PLUS/")

#
# So pra nao perder o humor ... xD
#
echo 'Procurando no banco de dados do ceu ...'
sleep 1
echo 'Procurando no banco de dados do purgatorio ...'
sleep 1
echo 'Procurando no banco de dados do inferno ...'
sleep 1
echo

#
# Baixando a pagina de pesquisa e redirecionando a saida
# para $DEATH_FILE
#
lynx --dump "$SEARCH_LINK" > $DEATH_FILE

#
# Testa se o nome nao foi encontrado.
# Mostra-se o aviso, deleta o arquivo temporario e sai.
#
if grep -q 'No documents match your search criteria' $DEATH_FILE
then
    echo
    echo "A pessoa '$1':"
    echo '  NAO foi encontrada no banco de dados.'
    echo '  Ha uma grande probabilidade de estar VIVA.'
    echo
    rm -f $DEATH_FILE
    exit
fi

#
# sed => Gera a lista de mortos encontrados e salva
# no arquivo $FOUND_FILE
#
# Explicacao do codigo:
#
# 1) O sed ira filtrar as linhas entre [dead-view.gif] e IFRAME.
#
# 2) Depois ira filtrar mais um pouco e retornar somente as linhas
# que contem uma data de falecimento ( pesquisei por '/' ).
# 
# 3) Por ultimo extrai somente o nome da pessoa de uma linha como essa:
#
#   [62]Michael Jackson   06/25/2009    Music
#
# A regexp aplicada nessa linha e' essa:
#   =>  s,^[^A-Z]*\([^/]*\)   .*,\1 esta morto.,p
#
#       Desde o inicio da linha, iremos ate a primeira letra maiuscula.
#       (Casou o [62]). Logo depois, salvamos tudo que nao seja '/'
#       ate o primeiro conjunto de 3 espacos (Casou: Michael Jackson).
#       Com isso temos o nome na backref \1 e fazemos a substituicao
#       da linha toda por '\1 esta morto'.
#
sed -n '
/\[dead-view\.gif\]/,/IFRAME/ {
  /\// {
     s,^[^A-Z]*\([^/]*\)   .*,\1 esta morto.,p
  }
}' $DEATH_FILE > $FOUND_FILE

#
# Se temos mais de uma linha entao temos mais
# de uma pessoa morta. Desse modo, mostra-se
# uma mensagem avisando que mais de um morto
# foi encontrado.
#
if [ `cat $FOUND_FILE | wc -l` -gt 1 ] ;
then
    echo 'Sua pesquisa gerou mais de um resultado, entao uma lista'
    echo 'relacionada com o nome pesquisado foi gerada:'
    echo
fi

# Mostra a lista
cat $FOUND_FILE

# Remove os arquivos temporarios.
rm -f $DEATH_FILE
rm -f $FOUND_FILE

Scripts recomendados

Script Player com o MPG123

Firewall funcional

Gerar chave SSH para o Git

Monitorar o uso do HD

Twitter via shell


  

Comentários
[1] Comentário enviado por removido em 09/08/2010 - 11:08h

muito loco, vou da uma olhada de como funciona o script

[2] Comentário enviado por pedrolucasp em 09/08/2010 - 11:43h

Gostei do Script. Muito divertido.

[3] Comentário enviado por maximum em 09/08/2010 - 13:30h

--Eu vejo gente morta...
--Com que frequencia?

'' 60 htz


[4] Comentário enviado por Daemonio em 09/08/2010 - 18:57h

Valew @pedrolucasp e @maximum pelos comentários. =D

@douglasfim : Tipo, após a linha:

lynx --dump "$SEARCH_LINK" > $DEATH_FILE

Dê um cat em $DEATH_FILE para você ver a página em html da pesquisa.
Quando fiz isso reparei que os nomes ficam entre as strings "[dead-view.gif]" e "IFRAME".
Depois vi que na frente dos nomes existe uma barra '/'. Pronto! Aí elaborei uma regex com
o sed para extrair somente o nome da pessoa da linha.

No mais o script é só isso!!

Abraços
t+


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts