17
0
coldcallbot/coldcallbot-manual.py
Benjamin Mako Hill 89c5369ad9 work to build a much better manual version of the script
one thing that is clear to me is that the preferred name logic should
really be removed entirely from the coldcall.py program and moved into
the coldcall.py file. I'm currently ignoring that functionality in the
coldcallbot-manual.py but I haven't yet fully removed it from the other.
2024-09-28 16:11:00 -07:00

54 lines
1.8 KiB
Python
Executable File

#!/usr/bin/env python3
from coldcall import ColdCall
from datetime import datetime
from csv import DictReader
current_time = datetime.today()
## create the coldcall object
cc = ColdCall(record_attendance=False, preferred_name_field="Name you'd like to go by in class")
def get_missing(d=current_time):
date_string = f'{d.month}/{d.day}/{d.year}'
with open("data/absence_poll_data.tsv", 'r') as f:
for row in DictReader(f, delimiter="\t"):
if row["Date of class session you will be absent"] == date_string:
yield(row["Your UW student number"])
full_names = {}
registered_students = []
with open("data/2022_winter_COM_481_A_students.csv", 'r') as f:
for row in DictReader(f, delimiter=","):
student_no = row["StudentNo"].strip()
registered_students.append(student_no)
full_names[student_no] = f"{row['FirstName']} {row['LastName']}"
## print("Registered:", registered_students)
missing_today = [x for x in get_missing(current_time)]
## print("Missing Today: ", missing_today)
preferred_names = {}
with open("data/student_information.tsv", 'r') as f:
for row in DictReader(f, delimiter="\t"):
preferred_names[row["Your UW student number"]] = row["Name you'd like to go by in class"]
## print("Preferred names:", preferred_names)
students_present = [s for s in registered_students if s not in missing_today]
## print("Students present:", students_present)
for i in range(100):
selected_student = cc.select_student_from_list(students_present)
try:
preferred_name = preferred_names[selected_student]
except KeyError:
preferred_name = "MISSING PREFERRED NAME"
print(f"{i + 1}.",
preferred_name, "::",
selected_student, "::",
full_names[selected_student])
cc.record_coldcall(selected_student)