1
0
PonyWave-Tools/pokemon_quiz/images/download-sprites.sh
2025-03-08 19:08:50 +01:00

193 lines
4.8 KiB
Bash

#!/bin/bash
main_menu() {
clear
echo "Pokemon-Sprite-Downloader"
echo "=============================================="
echo "Diese Datei lädt Sprites von Pokemon.com herunter und sortiert sie nach Generationen."
echo ""
echo "HINWEIS: Dieses Script benötigt curl, um die Bilder herunterzuladen."
echo "Falls curl nicht installiert ist, bitte mit 'sudo apt-get install curl' installieren."
echo ""
# Erstelle Generationsordner falls diese nicht existieren
mkdir -p gen1
mkdir -p gen2
mkdir -p gen3
mkdir -p gen4
mkdir -p gen5
mkdir -p gen6
mkdir -p gen7
mkdir -p gen8
mkdir -p gen9
echo "Generationsordner wurden erstellt/geprüft."
echo ""
# Prüfe, ob curl verfügbar ist
if ! command -v curl &> /dev/null; then
echo "FEHLER: curl wurde nicht gefunden!"
echo "Bitte installiere curl mit 'sudo apt-get install curl' oder dem Paketmanager deiner Distribution."
echo ""
read -p "Drücke eine Taste zum Beenden..."
exit 1
fi
echo "Wähle die Generation zum Herunterladen:"
echo "1 - Generation 1 (001-151)"
echo "2 - Generation 2 (152-251)"
echo "3 - Generation 3 (252-386)"
echo "4 - Generation 4 (387-493)"
echo "5 - Generation 5 (494-649)"
echo "6 - Generation 6 (650-721)"
echo "7 - Generation 7 (722-809)"
echo "8 - Generation 8 (810-905)"
echo "9 - Generation 9 (906-1025)"
echo "10 - Alle Generationen"
echo "11 - Beenden"
echo ""
read -p "Deine Auswahl (1-11): " gen
# Beenden, wenn Option 11 gewählt wurde
if [ "$gen" == "11" ]; then
echo "Programm wird beendet..."
exit 0
fi
# Setze Start- und Endnummern basierend auf der Auswahl
case $gen in
1)
start=1
end=151
targetDir="gen1"
;;
2)
start=152
end=251
targetDir="gen2"
;;
3)
start=252
end=386
targetDir="gen3"
;;
4)
start=387
end=493
targetDir="gen4"
;;
5)
start=494
end=649
targetDir="gen5"
;;
6)
start=650
end=721
targetDir="gen6"
;;
7)
start=722
end=809
targetDir="gen7"
;;
8)
start=810
end=905
targetDir="gen8"
;;
9)
start=906
end=1025
targetDir="gen9"
;;
10)
start=1
end=1025
targetDir="all"
;;
*)
echo "Ungültige Auswahl."
read -p "Drücke eine Taste zum Fortfahren..."
main_menu
;;
esac
echo "Starte Download..."
echo ""
# Download basierend auf dem gewählten Bereich
if [ "$targetDir" == "all" ]; then
# Alle Generationen
for ((i=1; i<=151; i++)); do
download_pokemon $i "gen1"
done
for ((i=152; i<=251; i++)); do
download_pokemon $i "gen2"
done
for ((i=252; i<=386; i++)); do
download_pokemon $i "gen3"
done
for ((i=387; i<=493; i++)); do
download_pokemon $i "gen4"
done
for ((i=494; i<=649; i++)); do
download_pokemon $i "gen5"
done
for ((i=650; i<=721; i++)); do
download_pokemon $i "gen6"
done
for ((i=722; i<=809; i++)); do
download_pokemon $i "gen7"
done
for ((i=810; i<=905; i++)); do
download_pokemon $i "gen8"
done
for ((i=906; i<=1025; i++)); do
download_pokemon $i "gen9"
done
else
# Einzelne Generation
for ((i=start; i<=end; i++)); do
download_pokemon $i $targetDir
done
fi
echo ""
echo "Download abgeschlossen."
echo ""
echo "Was möchtest du als nächstes tun?"
echo "1 - Weitere Pokemon herunterladen"
echo "2 - Programm beenden"
echo ""
read -p "Deine Auswahl (1-2): " next_action
if [ "$next_action" == "1" ]; then
main_menu
else
echo "Programm wird beendet..."
exit 0
fi
}
download_pokemon() {
num=$1
genDir=$2
# Führende Nullen hinzufügen
if [ $num -lt 10 ]; then
padded=$(printf "%03d" $num)
elif [ $num -lt 100 ]; then
padded=$(printf "%03d" $num)
else
padded=$(printf "%d" $num)
fi
echo "Lade Pokemon #$padded herunter..."
curl -s -o "$genDir/$padded.png" "https://www.pokemon.com/static-assets/content-assets/cms2/img/pokedex/full/$padded.png"
sleep 1
}
# Skript starten
main_menu