fuzzy-pokedex/pokedex-dev

98 lines
3.4 KiB
Plaintext
Raw Normal View History

2023-04-16 11:14:38 -05:00
#!/bin/bash
2023-04-22 13:42:25 -05:00
### Overhad preparation
2023-04-22 15:56:33 -05:00
shopt -s extglob
2023-04-22 14:00:34 -05:00
KBINDS="/usr/share/fuzzy-pokedex-dev/keybindings-preview"
POKEDATA="/usr/share/fuzzy-pokedex-dev/pokeData"
2023-04-22 17:15:49 -05:00
indent="\n\t\t\t\t\t"
2023-04-22 13:42:25 -05:00
2023-04-17 00:42:39 -05:00
### Help
2023-04-17 00:50:45 -05:00
help() {
2023-04-22 13:42:25 -05:00
printf "\n%s\n%s\n\n" "Use fzf to search Pokemon stats" "Can optionally search by name"
printf "%s\n\t%s\n\n" "EXAMPLE" "pokedex [pokemon name]"
printf "%s\n" "OPTIONS"
printf "%-25s\t%s\n" " -q, --quick [pokemon]" "Prints single pokedex entry to terminal" \
2023-04-22 17:15:49 -05:00
" -u, --update [N/+N/-N/N%]" "Scrape web for updated Pokemon stats" "" \
" WARNING: update function is resource heavy" "" " See Parallel job control (-j) for options" "" \
" Default is 200%" \
2023-04-22 13:42:25 -05:00
" -h, --help" "Print this help screen"
printf "\n%s\n" "KEYBINDS"
printf "%-15s\t%s\n" " space" "Reads the Pokedex entry" \
" ctrl-space" "Stops reading the Pokedex entry" \
" ctrl-n" "Shows small sprite version" \
" ctrl-b" "Shows large sprite version" \
" ctrl-s" "Shows shiny sprite version" \
" ctrl-h" "Shows this help screen in preview window"
printf "\n"
2023-04-17 00:42:39 -05:00
}
### Pokedex viewer using pokemon-colorscripts and fzf
2023-04-18 00:41:04 -05:00
pokedex() {
2023-04-18 00:15:37 -05:00
pokemon-colorscripts -l |
2023-04-17 03:28:49 -05:00
fzf -q "$1" +m -s -i \
2023-04-16 11:14:38 -05:00
--cycle \
--reverse \
--prompt=' ' \
--pointer='󰐝 ' \
--border=rounded \
--border-label="╢ Fuzzy-Pokedex ╟" \
--margin=4% \
--padding=4% \
2023-04-22 13:42:25 -05:00
--header="$(echo -e ' Choose a Pokemon to view info\n\t ctrl+h to for help')" \
2023-04-16 11:14:38 -05:00
--info=inline:' 󰨉 ' \
--color='fg+:15,fg:42,preview-fg:15,label:9,preview-label:15,hl+:134,hl:123,query:134,gutter:0,border:9,prompt:15,pointer:15,marker:15' \
--tiebreak=begin,chunk,length \
2023-04-22 17:15:49 -05:00
--preview="printf '${indent}%s${indent} %s\n' 'Press space to hear entry' 'ctrl+space to stop'; pokemon-colorscripts -n {1} --no-title; cat $POKEDATA/{1}" \
2023-04-17 00:03:49 -05:00
--preview-window=68%:wrap:border-rounded \
2023-04-16 11:14:38 -05:00
--bind=focus:transform-preview-label:'echo [ {1} ] ' \
2023-04-22 13:42:25 -05:00
--bind=ctrl-h:preview:"cat $KBINDS" \
2023-04-22 17:15:49 -05:00
--bind=space:preview:"printf '${indent::-2} %s${indent} %s\n' 'Select another Pokemon to stop audio' 'Or press ctrl+space'; pokemon-colorscripts -n {1} --no-title; cat $POKEDATA/{1}; espeak-ng -f $POKEDATA/{1} -g 4 -p 50 -s 145 -l 250 -ven+m3 &" \
--bind=ctrl-space:preview:"printf '${indent}%s${indent} %s\n' 'Press space to hear entry' 'ctrl+space to stop'; pokemon-colorscripts -n {1} --no-title; cat $POKEDATA/{1};" \
2023-04-22 13:42:25 -05:00
--bind=ctrl-b:preview:"echo; pokemon-colorscripts -b -n {1} --no-title; cat $POKEDATA/{1};" \
--bind=ctrl-s:preview:"echo; pokemon-colorscripts -s -n {1} --no-title; cat $POKEDATA/{1};" \
2023-04-22 17:15:49 -05:00
--bind=ctrl-n:preview:"printf '${indent}%s${indent} %s\n' 'Press space to hear entry' 'ctrl+space to stop'; pokemon-colorscripts -n {1} --no-title; cat $POKEDATA/{1};" |
2023-04-22 13:42:25 -05:00
parallel pokemon-colorscripts --no-title -n {} "&&" cat "$POKEDATA/{}"
}
### Quick view returns single Pokemon stat instead of opening pokedex
quick_view() {
parallel pokemon-colorscripts --no-title -n {} "&&" cat "$POKEDATA/{}" <<<"$1"
2023-04-18 09:25:16 -05:00
}
2023-04-17 00:42:39 -05:00
### Update Pokemon stats file set
2023-04-17 00:03:49 -05:00
update_pokeData() {
2023-04-22 13:42:25 -05:00
printf "\n\t\t%s\n\t%s\n\n" "WARNING!!!" "This WILL take a long time"
2023-04-22 17:15:49 -05:00
./jqPokeTest
2023-04-17 00:03:49 -05:00
}
2023-04-22 15:56:33 -05:00
if ! (( $# )); then
pokedex
2023-04-17 00:03:49 -05:00
fi
2023-04-22 15:56:33 -05:00
while (( $# )); do
arg=$1
shift
case "$arg" in
-q|--quick)
quick_view "$1"
shift
;;
-u|--update)
update_pokeData "$1"
shift
;;
-h|--help)
help
shift
;;
!(^-) )
pokedex "$arg"
shift
;;
-* )
echo "Invalid Usage"
help
;;
esac
done