File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -67,10 +67,13 @@ async def log_search(
6767 if session is None :
6868 return # DB not configured — silently skip
6969
70+ # Deduplicate course labels to prevent duplicate log entries
71+ unique_labels = list (dict .fromkeys (course_labels ))
72+
7073 async with session :
7174 faculty_map : dict [str , int ] = {}
7275
73- for label in course_labels :
76+ for label in unique_labels :
7477 code , name = _parse_label (label )
7578 faculty = _lookup_faculty (df , label )
7679
@@ -105,7 +108,7 @@ async def log_search(
105108 unique_courses = len (
106109 {
107110 c
108- for c in course_labels
111+ for c in unique_labels
109112 if _lookup_faculty (df , c ) == faculty
110113 }
111114 ),
@@ -114,7 +117,7 @@ async def log_search(
114117 else :
115118 fa .search_count += count
116119 unique = {
117- c for c in course_labels if _lookup_faculty (df , c ) == faculty
120+ c for c in unique_labels if _lookup_faculty (df , c ) == faculty
118121 }
119122 fa .unique_courses = max (fa .unique_courses , len (unique ))
120123 fa .last_searched_at = datetime .datetime .now (datetime .timezone .utc )
You can’t perform that action at this time.
0 commit comments