2022-02-24 17:21:25 +01:00
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Feb 24 17 : 14 : 05 2022
@author : antoine
"""
################
### UniSquat ###
################
"""
Indique toutes les salles disponibles dans les différents départements de
l ' Université de Strasbourg.
"""
# Modules :
import datetime
2022-02-24 19:29:03 +01:00
# Fichiers locaux :
2022-02-24 17:21:25 +01:00
import date_tools
import rooms_get as ro
2022-02-26 15:26:34 +01:00
# import definitions as lib # TODO : À quoi ça sert ?
2022-02-24 17:21:25 +01:00
2022-02-25 11:31:35 +01:00
# Globales
2022-02-26 16:39:29 +01:00
favorites = [ " C " + str ( i ) + " MATH " for i in range ( 1 , 12 ) ] + [ " C42-CMI " ] # TODO : Ne sera pas conservé
2022-03-01 11:05:58 +01:00
favorites = [ ]
2022-02-26 15:26:34 +01:00
links = [ ] # Liens vers les calendriers des salles des différents bâtiments de l'université
2022-02-25 11:31:35 +01:00
2022-02-24 17:21:25 +01:00
# Fonctions :
def main ( ) :
"""
Fonction principale .
Returns
- - - - - - -
None .
"""
print ( " ~~~ UniSquat ~~~ \n " )
date_choice = 0
while date_choice not in ( 1 , 2 ) :
date_choice = int ( input ( " Souhaitez-vous afficher les salles disponibles maintenant (1), où à une date précise (2) ? \n > " ) )
2022-02-26 15:26:34 +01:00
if date_choice == 1 : # Heure système
2022-02-24 19:29:03 +01:00
date = datetime . datetime . today ( )
2022-02-26 15:26:34 +01:00
else : # Heure mannuelle
2022-02-24 17:21:25 +01:00
date = date_tools . date_input ( )
2022-02-25 15:19:14 +01:00
available_rooms = ro . getrooms ( date , links = links )
2022-02-24 17:21:25 +01:00
2022-02-26 15:26:34 +01:00
# Salles libres à la date indiquée :
print ( " \n Les salles suivantes sont disponibles à " + str ( date . hour ) + " : " + str ( date . minute ) + " , le " + str ( date . date ( ) ) + " : \n " )
2022-02-25 10:51:34 +01:00
for room in available_rooms . values ( ) :
2022-02-26 15:26:34 +01:00
if room [ " name " ] in favorites or len ( favorites ) == 0 : # TODO : Changer le comportement de ce 'if' : il faudrait afficher toutes les salles, mais d'abord les favorites
2022-02-26 19:33:53 +01:00
if room [ " is_free " ] :
deltasec = room [ " end " ] . timestamp ( ) - date . timestamp ( )
2022-02-27 12:23:21 +01:00
remain_time_str = str ( int ( deltasec / 60 + 0.5 ) ) + " minutes "
if deltasec / 60 + 0.5 > = 60 : # Conversion en heures:minutes si les minutes dépassent 60
deltasec = date_tools . minutes_convert ( deltasec / 60 + 0.5 )
remain_time_str = str ( deltasec [ 0 ] ) + " heures "
if deltasec [ 1 ] > 0 :
remain_time_str + = " " + str ( deltasec [ 1 ] ) + " minutes "
2022-02-26 15:26:34 +01:00
# print(" - " + room["name"]+" | occupée dans : "+str(int(deltasec/60+0.5))+" minutes")
2022-02-26 19:33:53 +01:00
if room [ " end " ] . hour == 23 and room [ " end " ] . minute == 59 :
2022-02-27 12:23:21 +01:00
print ( " - " + room [ " name " ] )
2022-02-26 19:33:53 +01:00
else :
2022-02-27 12:23:21 +01:00
print ( " - " + room [ " name " ] + " | occupée à : " + str ( room [ " end " ] . hour + 1 ) + " : " + str ( room [ " end " ] . minute ) + " (dans " + remain_time_str + " ) " ) # TODO : Obligé d'ajouter 1h (problème de fuseau horaire ?)
2022-02-26 15:26:34 +01:00
# Salles libres prochainement :
print ( " \n Les salles suivantes seront disponibles prochainement : \n " )
2022-02-25 11:05:05 +01:00
for room in available_rooms . values ( ) :
2022-02-26 15:26:34 +01:00
if room [ " name " ] in favorites or len ( favorites ) == 0 :
2022-02-26 19:33:53 +01:00
if not room [ " is_free " ] :
deltasec = room [ " start " ] . timestamp ( ) - date . timestamp ( )
2022-02-27 12:23:21 +01:00
remain_time_str = str ( int ( deltasec / 60 + 0.5 ) ) + " minutes "
if deltasec / 60 + 0.5 > = 60 : # Conversion en heures:minutes si les minutes dépassent 60
deltasec = date_tools . minutes_convert ( deltasec / 60 + 0.5 )
remain_time_str = str ( deltasec [ 0 ] ) + " heures "
if deltasec [ 1 ] > 0 :
remain_time_str + = " " + str ( deltasec [ 1 ] ) + " minutes "
2022-02-26 15:26:34 +01:00
# print(" - " + room["name"]+" | libre dans : "+str(int(deltasec/60+0.5))+" minutes")
2022-02-26 19:33:53 +01:00
if room [ " end " ] . hour == 23 and room [ " end " ] . minute == 59 :
2022-02-27 12:23:21 +01:00
print ( " - " + room [ " name " ] + " | libre à " + str ( room [ " start " ] . hour + 1 ) + " : " + str ( room [ " start " ] . minute ) + " (dans " + remain_time_str + " ) " ) # TODO : Obligé d'ajouter 1h (problème de fuseau horaire ?)
2022-02-26 19:33:53 +01:00
else :
2022-02-27 12:23:21 +01:00
print ( " - " + room [ " name " ] + " | libre de " + str ( room [ " start " ] . hour + 1 ) + " : " + str ( room [ " start " ] . minute ) + " à " + str ( room [ " end " ] . hour + 1 ) + " : " + str ( room [ " end " ] . minute ) + " (dans " + remain_time_str + " ) " ) # TODO : Obligé d'ajouter 1h (problème de fuseau horaire ?)
2022-02-25 11:05:05 +01:00
2022-02-25 11:20:18 +01:00
if __name__ == " __main__ " :
main ( )