From 8439c0e3127cda441673aa6f94490c596f297810 Mon Sep 17 00:00:00 2001 From: Rithul Kamesh Date: Fri, 18 Oct 2024 22:35:06 +0530 Subject: [PATCH] feat: implement caching of audio --- take_attendance.bash | 91 +++++++++++++++++++++++++++----------------- 1 file changed, 57 insertions(+), 34 deletions(-) diff --git a/take_attendance.bash b/take_attendance.bash index f550c15..56fe179 100755 --- a/take_attendance.bash +++ b/take_attendance.bash @@ -1,58 +1,81 @@ #!/bin/bash students_file="student_names.txt" +audio_cache_dir="./student_audio_cache" if [ ! -f "$students_file" ]; then - echo "Error: $students_file not found!" - exit 1 + echo "Error: $students_file not found!" + exit 1 fi +# Create audio cache directory if it doesn't exist +mkdir -p "$audio_cache_dir" + current_date=$(date +%Y-%m-%d) present_file="attendance/${current_date}_present.txt" absent_file="attendance/${current_date}_absent.txt" -IFS=',' read -r -a students <"$students_file" +# Ensure attendance directory exists +mkdir -p "attendance" -speak_student() { - student_name="$1" - python3 - <>"$absent_file" - echo "Marked $student as absent" - break - ;; - p) - echo "$student" >>"$present_file" - echo "Marked $student as present" - break - ;; - r) - echo "Repeating $student's name" - speak_student "$student" - ;; - *) - echo "Invalid option. Use 'a' for absent, 'p' for present, 'r' to repeat." - ;; - esac - done - echo "" + generate_audio "$student" +done + +for student in "${students[@]}"; do + speak_student "$student" + + echo "Mark attendance for $student: (a for absent, p for present, r to repeat)" + while true; do + read -n 1 -s choice + case "$choice" in + a) + echo "$student" >> "$absent_file" + echo "Marked $student as absent" + break + ;; + p) + echo "$student" >> "$present_file" + echo "Marked $student as present" + break + ;; + r) + echo "Repeating $student's name" + speak_student "$student" + ;; + *) + echo "Invalid option. Use 'a' for absent, 'p' for present, 'r' to repeat." + ;; + esac + done + echo "" done echo "Attendance completed!"