2022-11-04 20:45:52 +02:00
if self . MESSAGE [ "text" ] . lower () == "!пара" :
2022-11-04 20:12:48 +02:00
try :
schedule = json . loads ( readfile ( self . path + "schedule.json" ) )
current_time = datetime . datetime . now ()
current_week = current_time . isocalendar ()[ 1 ] % 2
current_day = current_time . weekday () - 1
current_seconds = current_time . hour * 3600 + current_time . minute * 60 + current_time . second
if current_day > 4 :
next_week = int ( not bool ( current_week ))
day = - 1
next_pair = None
pair_found = False
for i in schedule [ next_week ]:
if not pair_found :
day += 1
for j in schedule [ next_week ][ i ]:
next_pair = schedule [ next_week ][ i ][ j ]
pair_found = True
break
self . RESPONCE = "Сьогодні вихідний, тому пар немає) \n Наступна пара - {} ( {} ) у {} \n Посилання (якщо воно чомусь треба): {} " . format ( next_pair [ "subject" ], next_pair [ "lector" ], self . days [ day ], next_pair [ "link" ])
else :
for i in self . timetable :
if current_seconds < i :
print ( "[DEBUG] Looking up a relevant pair..." )
try :
relevant_pair = schedule [ current_week ][ current_day + 1 ][ str ( self . timetable [ i ])]
self . RESPONCE = "Актуальна пара: {} ( {} ) \n Посилання: {} " . format ( relevant_pair [ "subject" ], relevant_pair [ "lector" ], relevant_pair [ "link" ])
break
except Exception as e :
print ( "[WARN] module: auto-schedule: exception {} while looking up the pair" . format ( e ))
else :
self . RESPONCE = "Сьогодні більше немає пар"
except Exception as e :
print ( "[WARN] module: auto-schedule: failed to process schedule.json ( {} )" . format ( e ))