Como exibir piadas aleatórias em www.icndb.com no seu terminal?

17

Eu já sei que você pode obter algumas citações / piadas interessantes usando o programa fortuna .

Mas encontrei neste script urwird uma nova fonte de diversão que gostaria de ter ao abrir um novo terminal.

Desta vez, as piadas vêm de http://www.icndb.com .

Sylvain Pineau
fonte

Respostas:

25

Você pode usar a API RESTful do icndb: http://www.icndb.com/api/ .

  1. Instale os cowsay, recodee jshonpacotes:

    sudo apt-get install cowsay recode jshon
  2. Em seguida, basta adicionar as seguintes linhas ao seu .bashrc:

    if [ "$PS1" ]; then
        wget "http://api.icndb.com/jokes/random" -qO- | jshon -e value -e joke -u |
        recode html | cowsay -f tux
    fi

    Nota : verificar se $PS1está definido garante que as piadas não sejam exibidas em sessões não interativas.

  3. Agora, quando abro um gnome-terminal, recebo:

    insira a descrição da imagem aqui

Sylvain Pineau
fonte
3
Se você estiver instalando o cowsay, também poderá instalar jshon. Isso torna a análise do JSON muito mais concisa (e provavelmente mais rápida):wget "http://api.icndb.com/jokes/random" -qO- | jshon -e value -e joke -u
Oli
1
Não sei se você precisará disso (recodificar) com JSON. E jshon's -u deve retornar uma string decodificada de qualquer maneira.
Oli
1
Justo. Isso é culpa do icndb.com mais do que JSON.
Oli
1
Tenho certeza de que o padrão ~/.bashrcjá verifica se é um shell interativo ( [[ $- != *i* ]] && return).
usar o seguinte código
2
Não há necessidade de uma barra invertida para a continuação da linha após um tubo. O tubo faz com que a linha continue por si só.
Pausado até novo aviso.