#!/bin/bash if command -v jq >/dev/null 2>&1; then echo else echo "jq ontbreekt." sudo apt install jq -y || { echo "installatie jq mislukt. abort" echo "probeer later opnieuw" exit 1 } echo echo "jq is geïnstalleerd. Wiki-terminal wordt gestart." echo fi if command -v less >/dev/null 2>&1; then echo else echo "less ontbreekt." sudo apt install less -y || { echo "installatie less mislukt. abort" echo "probeer later opnieuw" exit 1 } echo echo "less is geïnstalleerd. Wiki-terminal wordt gestart." echo fi zoek() { echo "Zoek naar pagina's:" read -p "> " PAGINANAAM echo mapfile -t TITELS < <( curl -sG \ --data-urlencode "action=query" \ --data-urlencode "list=search" \ --data-urlencode "srsearch=$PAGINANAAM" \ --data-urlencode "format=json" \ "https://en.wikipedia.org/w/api.php" | jq -r '.query.search[]?.title' ) if [ ${#TITELS[@]} -eq 0 ]; then echo "Geen resultaten gevonden." return fi for i in "${!TITELS[@]}"; do echo "$((i+1)). ${TITELS[$i]}" done } pick() { echo echo "kies een nummer" read -p "> " PAGINANUMMER if [[ $PAGINANUMMER =~ ^[0-9]+$ ]] && [ $PAGINANUMMER -ge 1 ] && [ $PAGINANUMMER -le ${#TITELS[@]} ]; then INDEX=$((PAGINANUMMER - 1)) PAGINANAAMNUMMER="${TITELS[$INDEX]}" return 0 else echo "Ongeldige keuze" return 199 fi } getSamenvatting() { curl -sG \ --data-urlencode "action=query" \ --data-urlencode "prop=extracts" \ --data-urlencode "explaintext=true" \ --data-urlencode "titles=$PAGINANAAMNUMMER" \ --data-urlencode "format=json" \ "https://en.wikipedia.org/w/api.php" \ | jq -r '.query.pages[].extract' | sed '/^== External links ==/,$d' | less } zoek pick if pick; then getSamenvatting else echo "probeer opnieuw" fi