#!/bin/bash # I would like to interject for a moment. # text datei mit pokemons FILE="POKEMON" # url zum (poke-)wiki WIKI="http://pokewiki.de/" # speicherpfad für heruntergeladenen webseiten SAVEPATH="./" ### CONF ENDE ### # teste ob textdatei angegeben wurde if [ ! -f $FILE ]; then echo "'$FILE' not a file." 1>&2 exit 1 fi # teste ob wiki url angegeben wurde if [ -z "$WIKI" ]; then echo "No URL given." 1>&2 exit 1 fi # bestimme anzahl der schleifen iterationen LINES=$(wc -l "$FILE" | cut -d ' ' -f 1) if [ $LINES == 0 ]; then echo "$FILE has 0 lines." 1>&2 exit 1 fi for ((i=1;i<=$LINES;i++)); do # lese pokemon aus der textdatei aus POKEMON=$(cut -f2 -s "$FILE" | sed -n ${i}p) # teste, ob datei früher schon einmal heruntergeladen wurde if [ -f "$POKEMON.txt" ]; then read -p "$(tput setaf 1)Warnung! $(tput bold)$POKEMON.txt$(tput sgr0) $(tput setaf 1)existiert schon. Sollen die Informationen überschrieben werden?$(tput sgr0) [Y/n] " answer if [ "x$answer" == "xn" ]; then continue fi fi echo "Lade Informationen zu $(tput setaf 3)'$POKEMON'$(tput sgr0) runter." # speichere datei in textdatei elinks -dump "${WIKI}${POKEMON}" > ${SAVEPATH}${POKEMON}.txt # extrahiere 'Statuswerte' grep -A 9 -i 'Maxwerte' "${SAVEPATH}${POKEMON}.txt" | sed 's/\[[0-9]*\]/ /g' >> ${SAVEPATH}${POKEMON}.statuswert.txt # extrahiere 'Fähigkeiten' # in welcher Zeile kommt 'Typen' vor FIRSTLINE=$(grep -m 1 -E -n 'Typ' "${SAVEPATH}${POKEMON}.txt" | cut -d ':' -f1) # in welcher Zeile kommt 'Fangen, Zucht, Training' vor SECONDLINE=$(grep -m 1 -E -n 'Fangen, Zucht, Training' "${SAVEPATH}${POKEMON}.txt" | cut -d ':' -f1) SECONDLINE=$((SECONDLINE=SECONDLINE-1)) # schneidet passenden bereich aus, ersetzt nummerierung und bild dateien sed -n -e "$FIRSTLINE,${SECONDLINE}p" "${SAVEPATH}${POKEMON}.txt" | sed 's/\[[0-9]*\]//g' | sed 's/IC\.png[A-Za-z]*//g' >> "${SAVEPATH}${POKEMON}.faehigkeiten.txt" # extrahiere ei-gruppen grep -Ei '\]Ei-Gruppen' "${SAVEPATH}${POKEMON}.txt" | sed 's/\[[0-9]*\]//g' >> "${SAVEPATH}${POKEMON}.ei.txt" # wechsle zu lynx für attacken lynx -dump -nolist "${WIKI}${POKEMON}" > "${SAVEPATH}${POKEMON}.txt" # extrahiere attacken # sed -n -e '/Folgende Attacken/,/durch TMs oder VMs/ p' "${SAVEPATH}${POKEMON}.txt" >> "${SAVEPATH}${POKEMON}.attacken.tmp.txt" #sed -n -e '/6\. Generation/,/Fett hervorgehobene/ p' "${SAVEPATH}${POKEMON}.attacken.txt" >> "${SAVEPATH}${POKEMON}.attacken.txt" FIRSTLINE=$(grep -m 1 -E -n 'Folgende Attacken' "${SAVEPATH}${POKEMON}.txt" | cut -d ':' -f1) SECONDLINE=$(grep -m 1 -E -n 'durch TMs oder VMs erlernen' "${SAVEPATH}${POKEMON}.txt" | cut -d ':' -f1) sed -n -e "$FIRSTLINE,${SECONDLINE}p" "${SAVEPATH}${POKEMON}.txt" | sed -n -e '/6\. Generation/,/Fett hervorgehobene/ p' | grep -v "✽" | sed 's/IC\.png [A-Za-z]*//g' | sed 's/ /\t/g' >> "${SAVEPATH}${POKEMON}.attacken.txt" >> "${SAVEPATH}${POKEMON}.attacken.txt" done