Compare commits

...

2 Commits

Author SHA1 Message Date
ksyasuda
a726b9d550 improvements 2022-02-03 00:40:59 -08:00
ksyasuda
f882f7d3d2 improve anime_selection menu performance 2022-02-03 00:34:50 -08:00

58
ani-cli
View File

@ -480,36 +480,26 @@ anime_selection() {
# Select anime from query results # Select anime from query results
search_results=$* search_results=$*
if [ "$IS_ROFI" -eq 1 ]; then if [ "$IS_ROFI" -eq 1 ]; then
count=1
menu=() menu=()
res=() res=()
searched=""
cnt=0
# generate inputlist for rofi and indexes of previously searched anime
while read -r anime_id; do while read -r anime_id; do
menu+="$count. $anime_id\n" menu+="$((cnt + 1)). $anime_id\n"
idx=$((count - 1)) res["$cnt"]="$anime_id"
res["$idx"]="$anime_id" lg "ANIME: $anime_id"
count=$((count + 1)) if ! check_db "$anime_id" "search"; then
lg "$anime_id HAS BEEN SEARCHED BEFORE"
[ -z "$searched" ] && searched="$cnt" || searched="$searched, $cnt"
fi
((++cnt))
done <<- EOF done <<- EOF
$search_results $search_results
EOF EOF
menu+="$count. Quit" menu+="$((++cnt)). Quit"
searched="" lg "searched indexes: $searched"
cnt=0
# Get the comma separated list of indexes of anime that has been searched before
for anime in "${res[@]}"; do
lg "ANIME: $anime"
check_db "$anime" "search"
if [[ $? -gt 0 ]]; then
lg "$anime HAS BEEN SEARCHED BEFORE"
if [ -z "$searched" ]; then
searched="$cnt"
else
searched="$searched, $cnt"
fi
fi
((++cnt))
done
lg "SEARCHED: $searched"
# get the anime from indexed list # get the anime from indexed list
msg="$(generate_span "Query: $query")" msg="$(generate_span "Query: $query")"
@ -551,12 +541,6 @@ anime_selection() {
lg "CHOICE: $choice" lg "CHOICE: $choice"
if [ "$IS_ROFI" -eq 1 ]; then
# check both choice and name are set
if [[ ! "$choice" ]] || [[ ! "$name" ]]; then
die "Invalid choice... committing seppuku"
fi
fi
# Check if input is a number # Check if input is a number
[ "$choice" -eq "$choice" ] 2> /dev/null || die "Invalid number entered" [ "$choice" -eq "$choice" ] 2> /dev/null || die "Invalid number entered"
@ -572,13 +556,12 @@ anime_selection() {
$search_results $search_results
EOF EOF
[ -z "$name" ] && name="$anime_id"
insert_history "$name" "search" &
printf "$c_reset" printf "$c_reset"
[ -z "$name" ] && name="$anime_id"
[ -z "$selection_id" ] && die "Invalid number entered" [ -z "$selection_id" ] && die "Invalid number entered"
insert_history "$name" "search" &
read -r last_ep_number <<- EOF read -r last_ep_number <<- EOF
$(search_eps "$selection_id") $(search_eps "$selection_id")
EOF EOF
@ -592,17 +575,19 @@ episode_selection() {
stmt="SELECT DISTINCT episode_number \ stmt="SELECT DISTINCT episode_number \
FROM watch_history \ FROM watch_history \
WHERE anime_name = '$anime_id';" WHERE anime_name = '$anime_id';"
hist=$(run_stmt "$stmt") # hist=$(run_stmt "$stmt")
# Get Watch History for $anime_id as comma separated list # Get Watch History for $anime_id as comma separated list
watch_history="" watch_history=""
for i in $hist; do # for i in $hist; do
while read -r i; do
if [[ "$watch_history" == "" ]]; then if [[ "$watch_history" == "" ]]; then
watch_history="$((--i))" watch_history="$((--i))"
else else
watch_history="$watch_history, $((--i))" watch_history="$watch_history, $((--i))"
fi fi
done done < <(run_stmt "$stmt")
lg "Episode watch history -> $watch_history"
# get user choice and set the start and end # get user choice and set the start and end
msg=$(printf "%s\n%s" "$(generate_span "Anime Name: $anime_id")" "$(generate_span "Range of episodes can be provided as: START_EPISODE - END_EPISODE")") msg=$(printf "%s\n%s" "$(generate_span "Anime Name: $anime_id")" "$(generate_span "Range of episodes can be provided as: START_EPISODE - END_EPISODE")")
@ -641,7 +626,6 @@ episode_selection() {
ep_choice_end="" ep_choice_end=""
fi fi
printf "$c_reset" printf "$c_reset"
} }
open_episode() { open_episode() {