resolves #8, average, and session logging
This commit is contained in:
parent
be5930a376
commit
5d8b4b6637
30
flash
30
flash
|
|
@ -51,6 +51,8 @@
|
||||||
EXAMPLE_DECK="$HOME/.local/share/flash/deck.csv"
|
EXAMPLE_DECK="$HOME/.local/share/flash/deck.csv"
|
||||||
# Track High score
|
# Track High score
|
||||||
HIGH_SCORE="$HOME/.local/share/flash/.highscore"
|
HIGH_SCORE="$HOME/.local/share/flash/.highscore"
|
||||||
|
# Track number of cards reviewed per session
|
||||||
|
REVIEW_LOG="$HOME/.local/share/flash/.reviews"
|
||||||
# Iterator for Count of cards reveiwed
|
# Iterator for Count of cards reveiwed
|
||||||
COUNTER=0
|
COUNTER=0
|
||||||
# Success message of setup process
|
# Success message of setup process
|
||||||
|
|
@ -104,7 +106,7 @@ if [ ! -d $DIR ];then
|
||||||
read RESPONSE
|
read RESPONSE
|
||||||
case "$RESPONSE" in
|
case "$RESPONSE" in
|
||||||
[QqNn]) exit ;;
|
[QqNn]) exit ;;
|
||||||
[Yy]) mkdir "$DIR" && touch {$EXAMPLE_DECK,$HIGH_SCORE} && echo "$DECK_TEMPLATE" >> $EXAMPLE_DECK && echo -e "$DIR_MADE_MSG" && exit;;
|
[Yy]) mkdir "$DIR" && touch {$EXAMPLE_DECK,$HIGH_SCORE,$REVIEW_LOG} && echo "$DECK_TEMPLATE" >> $EXAMPLE_DECK && echo -e "$DIR_MADE_MSG" && exit;;
|
||||||
*) echo -e "invalid choice, please select either ${LGREEN}y${NC} or ${LRED}n${NC}" && exit ;;
|
*) echo -e "invalid choice, please select either ${LGREEN}y${NC} or ${LRED}n${NC}" && exit ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
@ -117,11 +119,16 @@ if [ "$(find -maxdepth 999 -iname "*.csv" | wc -l)" = 0 ]; then
|
||||||
echo -e "$NO_DECKS" && cd "$PWD" && exit
|
echo -e "$NO_DECKS" && cd "$PWD" && exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If highscore file was removed, remake it.
|
# if highscore file was removed, remake it.
|
||||||
if [ ! -e "$HIGH_SCORE" ]; then
|
if [ ! -e "$HIGH_SCORE" ]; then
|
||||||
touch "$HIGH_SCORE"
|
touch "$HIGH_SCORE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# if reviewed file was removed, remake it.
|
||||||
|
if [ ! -e "$REVIEW_LOG" ]; then
|
||||||
|
touch "$REVIEW_LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
# Show pretty FZF preview of decks using BAT
|
# Show pretty FZF preview of decks using BAT
|
||||||
DECK="$(find -maxdepth $SEARCH_DEPTH -iname '*.csv' | fzf --preview='bat --theme="Solarized (dark)" --style=numbers --color=always {} | head -500')"
|
DECK="$(find -maxdepth $SEARCH_DEPTH -iname '*.csv' | fzf --preview='bat --theme="Solarized (dark)" --style=numbers --color=always {} | head -500')"
|
||||||
|
|
||||||
|
|
@ -134,7 +141,10 @@ main(){
|
||||||
IFS=$':'; read -a q <<<$(sort "$DECK" -n --field-separator=: --key=4 | head -n "$CARD_POOL_SIZE"| shuf -n 1)
|
IFS=$':'; read -a q <<<$(sort "$DECK" -n --field-separator=: --key=4 | head -n "$CARD_POOL_SIZE"| shuf -n 1)
|
||||||
clear
|
clear
|
||||||
echo -e "${WHITEBG} Flash.sh - Flash Cards In Your Terminal ${NC}"
|
echo -e "${WHITEBG} Flash.sh - Flash Cards In Your Terminal ${NC}"
|
||||||
echo -e "${ORANGE}${BOLD}Cards Reviewed:${BOLD}${NC} $COUNTER\t${ORANGE}${BOLD}High Score:${BOLD}${NC} $(cat $HIGH_SCORE)"
|
echo -e "${ORANGE}${BOLD}Cards Reviewed:${BOLD}${NC}\t$COUNTER"
|
||||||
|
echo -e " ${ORANGE}${BOLD}High Score:${BOLD}${NC}\t$(cat $HIGH_SCORE)"
|
||||||
|
echo -e " ${ORANGE}${BOLD}Avg review:${BOLD}${NC}\t$(awk '{ sum += $7; n++ } END { if (n > 0) print sum / n; }' $REVIEW_LOG)"
|
||||||
|
echo -e ""
|
||||||
echo -e "${LGREY}Category:${NC}
|
echo -e "${LGREY}Category:${NC}
|
||||||
${q[0]}"
|
${q[0]}"
|
||||||
echo -e "${LGREY}Question:${NC}
|
echo -e "${LGREY}Question:${NC}
|
||||||
|
|
@ -142,7 +152,7 @@ main(){
|
||||||
echo -e ""
|
echo -e ""
|
||||||
read -sn 1 NEXT
|
read -sn 1 NEXT
|
||||||
if [ "$NEXT" = q ] || [ "$NEXT" = Q ]; then
|
if [ "$NEXT" = q ] || [ "$NEXT" = Q ]; then
|
||||||
cd "$PWD" && exit
|
add_usage_entry && cd "$PWD" && exit
|
||||||
fi
|
fi
|
||||||
echo -e "${LGREY}Answer:${NC}
|
echo -e "${LGREY}Answer:${NC}
|
||||||
${q[2]}"
|
${q[2]}"
|
||||||
|
|
@ -155,7 +165,7 @@ main(){
|
||||||
echo -e ""
|
echo -e ""
|
||||||
read -sn 1 DIFFICULTY_SCORE
|
read -sn 1 DIFFICULTY_SCORE
|
||||||
if [ "$DIFFICULTY_SCORE" = q ] || [ "$DIFFICULTY_SCORE" = Q ]; then
|
if [ "$DIFFICULTY_SCORE" = q ] || [ "$DIFFICULTY_SCORE" = Q ]; then
|
||||||
cd "$PWD" && exit
|
add_usage_entry && cd "$PWD" && exit
|
||||||
fi
|
fi
|
||||||
clear
|
clear
|
||||||
|
|
||||||
|
|
@ -204,6 +214,16 @@ main(){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
add_usage_entry(){
|
||||||
|
if [ ! "$COUNTER" = 0 ]; then
|
||||||
|
# Create a New Entry
|
||||||
|
TIME_STAMP="$(date --rfc-3339=seconds)"
|
||||||
|
REVIEWED_DECK="$(echo $EXAMPLE_DECK | awk -F/ '{print $7}')"
|
||||||
|
printf -v ENTRY "TimeStamp: %s Deck: %s cardsReviewed: %s" "$TIME_STAMP" "$REVIEWED_DECK" "$COUNTER"
|
||||||
|
echo "$ENTRY" >> "$REVIEW_LOG"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
main
|
main
|
||||||
done
|
done
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue