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.
54 lines
1.8 KiB
Python
Executable File
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)
|
|
|