Как отображать случайные шутки с www.icndb.com в вашем терминале?

17

Я уже знаю, что вы можете получить хорошие цитаты / шутки, используя программу Fortune .

Но я нашел в этом скрипте urwird новый источник удовольствия, который я хотел бы получить, когда открываю новый терминал.

На этот раз шутки приходят с http://www.icndb.com .

Сильвен Пино
источник

Ответы:

25

Вы можете использовать icndb RESTful API: http://www.icndb.com/api/ .

  1. Установите cowsay, recodeи jshonпакеты:

    sudo apt-get install cowsay recode jshon
  2. Затем просто добавьте следующие строки в ваш .bashrc:

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

    Примечание : проверка, если $PS1установлен, гарантирует, что шутки не будут отображаться на неинтерактивных сессиях.

  3. Теперь, когда я открываю, gnome-terminalя получаю:

    введите описание изображения здесь

Сильвен Пино
источник
3
Если вы устанавливаете cowsay, вы можете также установить jshon. Это делает анализ JSON намного более кратким (и, вероятно, более быстрым):wget "http://api.icndb.com/jokes/random" -qO- | jshon -e value -e joke -u
Oli
1
Я не уверен, что вам понадобится (перекодировать) с JSON. И jshon's -u должен все равно вернуть декодированную строку.
Оли
1
Справедливо. Это вина icndb.com больше, чем JSON.
Оли
1
Я уверен, что по умолчанию ~/.bashrcуже проверяется, является ли это интерактивной оболочкой ( [[ $- != *i* ]] && return).
nyuszika7h
2
Нет необходимости использовать обратную косую черту для продолжения строки после трубы. Труба заставляет линию продолжаться сама.
Приостановлено до дальнейшего уведомления.