Jak wyświetlić losowe dowcipy z www.icndb.com w swoim terminalu?

Odpowiedzi:

25

Możesz użyć icndb RESTful API: http://www.icndb.com/api/ .

  1. Zainstalować cowsay, recodea jshonpakietów:

    sudo apt-get install cowsay recode jshon
  2. Następnie wystarczy dodać następujące wiersze do .bashrc:

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

    Uwaga : sprawdzenie, czy $PS1jest ustawione, gwarantuje, że dowcipy nie będą wyświetlane podczas nieinteraktywnych sesji.

  3. Teraz, kiedy otwieram gnome-terminal, otrzymuję:

    wprowadź opis zdjęcia tutaj

Sylvain Pineau
źródło
3
Jeśli instalujesz cowsay, równie dobrze możesz zainstalować jshon. Dzięki temu parsowanie JSON jest o wiele bardziej zwięzłe (i prawdopodobnie szybsze):wget "http://api.icndb.com/jokes/random" -qO- | jshon -e value -e joke -u
Oli
1
Nie jestem pewien, czy będziesz tego potrzebować (przekodować) w JSON. I jshon-u i tak powinien zwrócić dekodowany ciąg.
Oli
1
Słusznie. To wina icndb.com bardziej niż JSON.
Oli
1
Jestem pewien, że domyślnie ~/.bashrcjuż sprawdza, czy jest to powłoka interaktywna ( [[ $- != *i* ]] && return).
nyuszika7h,
2
Nie ma potrzeby stosowania odwrotnego ukośnika dla kontynuacji linii po potoku. Rura powoduje, że linia jest kontynuowana sama.
Wstrzymano do odwołania.