#!/bin/bash

# Function to display the menu and get user selection
function display_menu {
   local options=("$@")
   local PS3="Please select an option: "
   select opt in "${options[@]}"; do
       if [[ -n $REPLY && $REPLY -le ${#options[@]} ]]; then
           echo "$REPLY"
           break
       else
           echo "Invalid selection. Please try again."
       fi
   done
}

# Genre menu
genre_menu=("Lofi" "Synthwave" "Lounge and Chill" "Quit")
selected_genre_index=$(display_menu "${genre_menu[@]}")

# Convert the index to the actual genre name
selected_genre=${genre_menu[$selected_genre_index-1]}

echo "Selected genre: $selected_genre"  # Debug statement

if [[ $selected_genre == "Quit" ]]; then
   echo "Exiting..."
   exit 0
fi

# Channel menus based on selected genre
case $selected_genre in
   "Lofi")
       channels=("lofi girl: https://www.youtube.com/watch?v=jfKfPfyJRdk" "Lofi Cyber Ambient: https://www.youtube.com/watch?v=L5a1xExnnZo" "lofi synthwave: https://www.youtube.com/watch?v=4xDzrJKXOOY" "Sad Lofi: https://www.youtube.com/watch?v=P6Segk8cr-c")
       ;;
   "Synthwave")
       channels=("synthwavefm: https://www.youtube.com/watch?v=ZwWRrvJwFTM" "101.5FM: https://www.youtube.com/watch?v=WPXlsahEUNU" "darksynth: https://www.youtube.com/watch?v=MGJWPha7rJw" "Timewarpdrive: https://www.youtube.com/watch?v=mzFASfW43-g")
       ;;
   "Lounge and Chill")
       channels=("Chill Lounge: https://www.youtube.com/watch?v=9UMxZofMNbA" "Sunset Beach: https://www.youtube.com/watch?v=j7lLuCKxGtU" "The Goodlife: https://www.youtube.com/watch?v=36YnV9STBqc" "Chillout Lounge: https://www.youtube.com/watch?v=tJqBG7ZQDc4")
       ;;
   *)
       echo "Invalid genre selection."
       exit 1
       ;;
esac

echo "Channels: ${channels[@]}"  # Debug statement

# Display channel menu and get user selection
selected_channel_index=$(display_menu "${channels[@]}")

# Convert the index to the actual channel name
selected_channel=${channels[$selected_channel_index-1]}

echo "Selected channel: $selected_channel"  # Debug statement

# Extract the YouTube URL from the selected channel
youtube_url=$(echo $selected_channel | awk -F': ' '{print $2}')

echo "YouTube URL: $youtube_url"  # Debug statement

# Call the mpv command with the selected YouTube URL
mpv --vo=caca "$youtube_url"