From 22ee7060dc3dedff1e2be2322e57c8ac5a6c6bb8 Mon Sep 17 00:00:00 2001 From: ben Date: Wed, 8 Jul 2026 09:59:49 +0200 Subject: [PATCH] eerste versie wiki-terminal --- main.sh | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100755 main.sh diff --git a/main.sh b/main.sh new file mode 100755 index 0000000..0cc3109 --- /dev/null +++ b/main.sh @@ -0,0 +1,89 @@ +#!/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 \ No newline at end of file