Switch to PokeAPI #1
1
PKGBUILD
1
PKGBUILD
|
@ -25,7 +25,6 @@ package() {
|
||||||
cd "$srcdir/${pkgname:0:-4}"
|
cd "$srcdir/${pkgname:0:-4}"
|
||||||
install -Dm666 pokeData/* -t "$pkgdir/usr/share/$pkgname/pokeData"
|
install -Dm666 pokeData/* -t "$pkgdir/usr/share/$pkgname/pokeData"
|
||||||
install -Dm666 keybindings-preview -t "$pkgdir/usr/share/$pkgname"
|
install -Dm666 keybindings-preview -t "$pkgdir/usr/share/$pkgname"
|
||||||
install -Dm755 pokeParse -t "$pkgdir/usr/bin"
|
|
||||||
install -Dm755 pokeUpdate -t "$pkgdir/usr/bin"
|
install -Dm755 pokeUpdate -t "$pkgdir/usr/bin"
|
||||||
install -Dm755 pokedex-dev -t "$pkgdir/usr/bin"
|
install -Dm755 pokedex-dev -t "$pkgdir/usr/bin"
|
||||||
}
|
}
|
||||||
|
|
55
pokeParse
55
pokeParse
|
@ -1,55 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
### Assign first arg as pokemon
|
|
||||||
POKEMON="$1"
|
|
||||||
|
|
||||||
### Set temp files to hold raw data
|
|
||||||
e_P="/tmp/poke.e_P"
|
|
||||||
e_E="/tmp/poke.e_E"
|
|
||||||
e_S="/tmp/poke.e_S"
|
|
||||||
#e_C="/tmp/poke.e_C"
|
|
||||||
|
|
||||||
### Set various pokeAPI endpoint URLs
|
|
||||||
endpoint_POKEMON="https://pokeapi.co/api/v2/pokemon"
|
|
||||||
endpoint_SPECIES="https://pokeapi.co/api/v2/pokemon-species"
|
|
||||||
endpoint_ENCOUNTER="https://pokeapi.co/api/v2/pokemon/$POKEMON/encounters"
|
|
||||||
#endpoint_CHAIN="https://pokeapi.co/api/v2/evolution-chain"
|
|
||||||
|
|
||||||
### GET from pokeAPI endpoints
|
|
||||||
curl -s "$endpoint_POKEMON/$POKEMON" -o "$e_P"
|
|
||||||
curl -s "$endpoint_ENCOUNTER" -o "$e_E"
|
|
||||||
curl -s "$endpoint_SPECIES/$POKEMON" -o "$e_S"
|
|
||||||
#curl -s "$endpoint_CHAIN/$ID" -o "$e_C"
|
|
||||||
|
|
||||||
### Parse JSON for attributes
|
|
||||||
NAME=$(jq -r '. | .name' < "$e_P")
|
|
||||||
HEIGHT=$(jq -r '.height' < "$e_P")
|
|
||||||
WEIGHT=$(jq -r '.weight' < "$e_P")
|
|
||||||
ID=$(jq -r '.id' < "$e_P")
|
|
||||||
BASEX=$(jq -r '.base_experience' < "$e_P")
|
|
||||||
BASEHAPPY=$(jq -r '.base_happiness' < "$e_S")
|
|
||||||
CAPTURE=$(jq -r '.capture_rate' < "$e_S")
|
|
||||||
LOCATE=$(jq -r '.[].location_area["name"]' < "$e_E")
|
|
||||||
FLAVOR=$(tr -d '\f' < <(jq -r '.flavor_text_entries[7].flavor_text' < "$e_S"))
|
|
||||||
GENUS=$(jq -r '.genera[7].genus' < "$e_S")
|
|
||||||
#mapfile -t CHAIN < <(jq -r '. | .["chain"].evolves_to[].species["name"]' < "$e_C")
|
|
||||||
mapfile -t TYPE < <(jq -r '. | .types[].type["name"]' < "$e_P")
|
|
||||||
mapfile -t STAT < <(jq -r '. | .stats[].stat["name"]' < "$e_P")
|
|
||||||
mapfile -t VAL < <(jq -r '. | .stats[].base_stat' < "$e_P")
|
|
||||||
|
|
||||||
### Print formatted data
|
|
||||||
printf "%s\tA %s type Pokémon\n" \
|
|
||||||
"$NAME" "${TYPE[0]}"
|
|
||||||
printf "\n%20s\n\n" "$FLAVOR"
|
|
||||||
#for ((i=0; i<${#CHAIN[@]}; i++)); do
|
|
||||||
# printf "%s\t" "${CHAIN[@]}"
|
|
||||||
#done
|
|
||||||
printf " ↞--------| STATS |--------↠ \n"
|
|
||||||
for ((i=0; i<${#STAT[@]}; i++)); do
|
|
||||||
printf "%15s: %10s\n" "${STAT[i]}" "${VAL[i]}"
|
|
||||||
done
|
|
||||||
printf "\nPokedex ID: %s\tCapture Rate: %s\nBase Exp: %s\tHappiness: %s\nHeight: %s\tWeight: %s\n" \
|
|
||||||
"$ID" "$CAPTURE" "$BASEX" "$BASEHAPPY" "$HEIGHT" "$WEIGHT"
|
|
||||||
printf "\nGenus: %s" "$GENUS"
|
|
||||||
printf "\nLocation Areas:\n%s\n" "$LOCATE"
|
|
||||||
|
|
67
pokeUpdate
67
pokeUpdate
|
@ -1,18 +1,79 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
### Set up working dirs
|
||||||
DATADIR="/usr/share/fuzzy-pokedex-dev/pokeData"
|
DATADIR="/usr/share/fuzzy-pokedex-dev/pokeData"
|
||||||
|
TMPDIR="$(mktemp -p /tmp -d pokeTemp.XXXXXX)"
|
||||||
|
|
||||||
|
### Declare some intergers for calculating percentage of task
|
||||||
declare -i WC
|
declare -i WC
|
||||||
WC=$(pokemon-colorscripts -l | wc | awk '{print $1}' )
|
WC=$(pokemon-colorscripts -l | wc | awk '{print $1}' )
|
||||||
|
|
||||||
declare -i COUNT
|
declare -i COUNT
|
||||||
COUNT="$WC"
|
COUNT="$WC"
|
||||||
|
|
||||||
for POKEMON in $(pokemon-colorscripts -l); do
|
### Parse PokeAPI json results and format data
|
||||||
pokeParse "$POKEMON" > "$DATADIR/$POKEMON"
|
pokeParser() {
|
||||||
|
### Assign first arg as pokemon
|
||||||
|
POKEMON="$1"
|
||||||
|
|
||||||
|
### Set temp files to hold raw data
|
||||||
|
e_P="$(mktemp -p $TMPDIR -t e_P.$POKEMON.XXXXXX)"
|
||||||
|
e_E="$(mktemp -p $TMPDIR -t e_E.$POKEMON.XXXXXX)"
|
||||||
|
e_S="$(mktemp -p $TMPDIR -t e_S.$POKEMON.XXXXXX)"
|
||||||
|
#e_C="/tmp/poke.e_C"
|
||||||
|
|
||||||
|
### Set various pokeAPI endpoint URLs
|
||||||
|
endpoint_POKEMON="https://pokeapi.co/api/v2/pokemon"
|
||||||
|
endpoint_SPECIES="https://pokeapi.co/api/v2/pokemon-species"
|
||||||
|
endpoint_ENCOUNTER="https://pokeapi.co/api/v2/pokemon/$POKEMON/encounters"
|
||||||
|
#endpoint_CHAIN="https://pokeapi.co/api/v2/evolution-chain"
|
||||||
|
|
||||||
|
### GET from pokeAPI endpoints
|
||||||
|
curl -s "$endpoint_POKEMON/$POKEMON" -o "$e_P"
|
||||||
|
curl -s "$endpoint_ENCOUNTER" -o "$e_E"
|
||||||
|
curl -s "$endpoint_SPECIES/$POKEMON" -o "$e_S"
|
||||||
|
#curl -s "$endpoint_CHAIN/$ID" -o "$e_C"
|
||||||
|
|
||||||
|
### Parse JSON for attributes
|
||||||
|
NAME=$(jq -r '. | .name' < "$e_P")
|
||||||
|
HEIGHT=$(jq -r '.height' < "$e_P")
|
||||||
|
WEIGHT=$(jq -r '.weight' < "$e_P")
|
||||||
|
ID=$(jq -r '.id' < "$e_P")
|
||||||
|
BASEX=$(jq -r '.base_experience' < "$e_P")
|
||||||
|
BASEHAPPY=$(jq -r '.base_happiness' < "$e_S")
|
||||||
|
CAPTURE=$(jq -r '.capture_rate' < "$e_S")
|
||||||
|
LOCATE=$(jq -r '.[].location_area["name"]' < "$e_E")
|
||||||
|
FLAVOR=$(tr -d '\f' < <(jq -r '.flavor_text_entries[7].flavor_text' < "$e_S"))
|
||||||
|
GENUS=$(jq -r '.genera[7].genus' < "$e_S")
|
||||||
|
#mapfile -t CHAIN < <(jq -r '. | .["chain"].evolves_to[].species["name"]' < "$e_C")
|
||||||
|
mapfile -t TYPE < <(jq -r '. | .types[].type["name"]' < "$e_P")
|
||||||
|
mapfile -t STAT < <(jq -r '. | .stats[].stat["name"]' < "$e_P")
|
||||||
|
mapfile -t VAL < <(jq -r '. | .stats[].base_stat' < "$e_P")
|
||||||
|
|
||||||
|
### Print formatted data
|
||||||
|
{ printf "%s\tA %s type Pokémon\n" \
|
||||||
|
"$NAME" "${TYPE[0]}";
|
||||||
|
printf "\n%20s\n\n" "$FLAVOR";
|
||||||
|
#for ((i=0; i<${#CHAIN[@]}; i++)); do
|
||||||
|
# printf "%s\t" "${CHAIN[@]}"
|
||||||
|
#done
|
||||||
|
printf " ↞--------| STATS |--------↠ \n";
|
||||||
|
for ((i=0; i<${#STAT[@]}; i++)); do
|
||||||
|
printf "%15s: %10s\n" "${STAT[i]}" "${VAL[i]}";
|
||||||
|
done;
|
||||||
|
printf "\nPokedex ID: %s\tCapture Rate: %s\nBase Exp: %s\tHappiness: %s\nHeight: %s\tWeight: %s\n" \
|
||||||
|
"$ID" "$CAPTURE" "$BASEX" "$BASEHAPPY" "$HEIGHT" "$WEIGHT";
|
||||||
|
printf "\nGenus: %s" "$GENUS";
|
||||||
|
printf "\nLocation Areas:\n%s\n" "$LOCATE";} > "$DATADIR/$POKEMON"
|
||||||
|
|
||||||
|
### Print completion status updates
|
||||||
((COUNT--))
|
((COUNT--))
|
||||||
PCTLEFT="$((COUNT*100/WC))"
|
PCTLEFT="$((COUNT*100/WC))"
|
||||||
PCTDONE="$((100-PCTLEFT))"
|
PCTDONE="$((100-PCTLEFT))"
|
||||||
printf "\t%s - %s \t%s%%\n" "$COUNT" "$POKEMON" "$PCTDONE"
|
printf "\t%s - %s \t%s%%\n" "$COUNT" "$POKEMON" "$PCTDONE"
|
||||||
|
}
|
||||||
|
|
||||||
|
for POKEMON in $(pokemon-colorscripts -l); do
|
||||||
|
pokeParser "$POKEMON"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
rm -rf "$TMPDIR"
|
||||||
|
|
Loading…
Reference in New Issue