eerste versie wiki-terminal

This commit is contained in:
ben
2026-07-08 09:59:49 +02:00
commit 22ee7060dc
Executable
+89
View File
@@ -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