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 ) )