Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

[Shell-Script]Tabela Campeonato Brasileiro no Terminal

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    [Shell-Script]Tabela Campeonato Brasileiro no Terminal

    Tabela do Campeonato Brasileiro Direto no Terminal



    O Script mostra no terminal a tabela de classificação do campeonato brasileiro 2011. Essa tabela é obtida através do site do terra e as informações são extraídas pelo script.

    A utilização é fácil, só executar:

    $ ./campbra.sh
    e esperar o script gerar a tabela.

    #!/bin/bash
    # Autor: Daemonio (Marcos Paulo Ferreira)
    # Contato: undefinido gmail com
    #
    # [campbra.sh]
    # Script que mostra a tabela do campeonato brasileiro
    # serie a. Ele esta configurado para mostrar a tabela
    # do campeonato de 2011. Atraves da variavel SITE_TERRA
    # voce pode apontar para a pagina de uma tabela de
    # outro ano. O script ira funcionar somente se o terra
    # manter o mesmo formato da pagina.
    #
    # [Execucao]
    # $ ./campbra.sh
    #
    # [Dependencias]
    # 1) wget
    #
    # Thu Jul 7 01:47:27 BRT 2011
    # Thu Jul 7 11:19:34 BRT 2011
    #

    # Pagina usada para extrair as informacoes.
    SITE_TERRA='http://esportes.terra.com.br/futebol'
    SITE_TERRA=${SITE_TERRA}'/brasileiro/2011/seriea'
    SITE_TERRA=${SITE_TERRA}'/classificacao_jogos'

    # A pagina acima sera salva nesse arquivo.
    ARQUIVO_TERRA=/tmp/tabelao$$

    # Essa funcao recebe as informacoes de todos
    # os times de uma vez so e monta uma tabela
    # com esses dados.
    function print_table() {
    echo -n ''
    printf ' %'$ALIGN's %3s %3s %3s%3s %3s' 'Time' 'P' 'J' 'V' 'E' 'D'
    printf ' %3s %3s %4s %2s' 'GP' 'GC' 'SG' '%'
    echo ''

    while read _zone
    do
    read _position
    read _name
    read _points
    read _j
    read _v
    read _e
    read _d
    read _gp
    read _gc
    read _sg
    read _p

    # Escolhe a cor apropriada para cada time.
    case $_zone in
    # Libertadores
    'X1') _colorz=''
    ;;
    # Pre Libertadores
    'X2') _colorz=''
    ;;
    # Sul Americana
    'X3') _colorz=''
    ;;
    # Rebaixados
    'X4') _colorz=''
    ;;
    # Os que nao fedem nem cheiram
    *) _colorz=''
    esac

    # Monta uma linha da tabela (cada time).
    echo -n $_colorz
    printf '%2d %-'$ALIGN's %3d %3d %3d' $_position "$_name" $_points $_j $_v
    printf '%3d %3d %3d %3d %4d %3d' $_e $_d $_gp $_gc $_sg $_p
    echo ''
    done

    # Legenda.
    echo
    echo '' '** Libertadores' ''
    echo '' '** Pre-Libertadores' ''
    echo '' '** Sul Americana' ''
    echo '' '** Rebaixados ' ''
    echo
    }

    # Obtem as informacoes de todos os times.
    function get_all_info() {
    sed -n '/<tbody>/,/<\/tbody>/p' $ARQUIVO_TERRA
    }

    # Obtem o nome dos times. Essa funcao sera usada
    # para obter o time com maior nome para assim fazer
    # um alinhamento na hora de montar a tabela.
    function get_team_names() {
    sed -n '/main team-name/s/^[^>]*>[^>]*>\([^<]*\).*/\1/p'
    }

    # Sed rulezz..
    # Aqui retira-se as tags html e obtem somente as
    # info necessarias.
    function do_it_sed() {
    sed -n '
    /<tbody>/b
    /<\/tbody>/q
    x; s/.*// ;x
    s/^[^"]*"[-zone]*\([^ "]*\).*/X\1/ ; H; x; s/.//; x; n
    s/^[^>]*>\([0-9]*\).*/\1/ ; H; n; n
    s/^[^>]*>[^>]*>\([^<]*\).*/\1/ ; H; n; n
    s/^[^>]*>\([0-9]*\).*/\1/ ; H; n
    :loop
    /^<\/tr>/bend
    s/<td>\([-0-9]*\).*/\1/;
    H; n; bloop
    :end
    g
    p
    '
    }

    #
    # MAIN
    #

    # Baixando ...
    echo '[+] Baixando a pagina da tabela do brasileirao... Espere.'
    wget -q $SITE_TERRA -O $ARQUIVO_TERRA

    # Obtem o alinhamento para a coluna nome dos times.
    ALIGN=$(get_all_info | get_team_names | wc -L)
    ALIGN=$((ALIGN+1))

    # Do the job.
    get_all_info | do_it_sed | print_table

    # Remove arquivos temporarios.
    rm -f $ARQUIVO_TERRA

    # EOF
    Não Acha Estranha Essa Frase:
    Eu Sou Hacker e Uso Windows XP!

    Use Débian, Aprenda Slackware e Brinque Muito Com Back|Track


    Fã ->Nickguitar.dll


    Quer ajudar nossso fórum e não sabe como?
    Então click na imagem e ajude-nos com os links off
X
Working...
X