89 lines
2.0 KiB
Bash
Executable File
89 lines
2.0 KiB
Bash
Executable File
#!/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 |