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
2022-11-05 18:42:45 +02:00
current_day = current_time . weekday ()
2022-11-04 20:12:48 +02:00
current_seconds = current_time . hour * 3600 + current_time . minute * 60 + current_time . second
2022-11-05 18:42:45 +02:00
print ( "[DEBUG] Current day is {} ( {} )" . format ( type ( current_day ), current_day ))
if current_day > 4 or current_day < 0 :
2022-11-04 20:12:48 +02:00
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
2022-11-05 18:42:45 +02:00
for j in schedule [ next_week ][ day ]:
next_pair = schedule [ next_week ][ day ][ j ]
2022-11-04 20:12:48 +02:00
pair_found = True
break
2022-11-05 18:42:45 +02:00
self . RESPONCE = "Сьогодні вихідний, тому пар немає) \n Наступна пара - {} ( {} ) о {} у {} \n Посилання (якщо воно чомусь треба): {} " . format ( next_pair [ "subject" ], next_pair [ "lector" ], self . reverse_timetable [ int ( j )], self . days_rod [ day ], next_pair [ "link" ])
2022-11-04 20:12:48 +02:00
else :
for i in self . timetable :
if current_seconds < i :
print ( "[DEBUG] Looking up a relevant pair..." )
try :
2022-11-05 18:42:45 +02:00
relevant_pair = schedule [ current_week ][ current_day ][ str ( self . timetable [ i ])]
self . RESPONCE = "Актуальна пара: {} ( {} ), початок о {} \n Посилання: {} " . format ( relevant_pair [ "subject" ], relevant_pair [ "lector" ], self . reverse_timetable [ self . timetable [ i ]], relevant_pair [ "link" ])
2022-11-04 20:12:48 +02:00
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 ))