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.
"""
2022-05-12 15:32:12 +02:00
### Fichier de l'interface en ligne de commande ###
2022-02-24 17:21:25 +01:00
# Modules :
import datetime
2022-05-10 20:55:19 +02:00
import time
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-05-10 20:55:19 +02: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 " )
2022-05-10 20:55:19 +02:00
2022-05-12 15:32:12 +02:00
#hdelay = 1 #TODO : décalage horaire (pb de fuseau ?)
2022-05-10 20:55:19 +02:00
2022-05-12 15:32:12 +02:00
#if time.localtime().tm_isdst != 0 :
#hdelay = 2
2022-02-24 17:21:25 +01:00
2022-05-07 18:51:23 +02:00
ignore_list = [ " salle non définie " , " salle en Distanciel " ]
2022-02-24 17:21:25 +01:00
2022-05-07 18:51:23 +02:00
dept_filen = " data/dept_list.txt "
2022-02-24 17:21:25 +01:00
2022-05-07 18:51:23 +02:00
dept_list = ro . get_depts ( dept_filen )
print ( " Les départements suivants sont disponibles : \n " )
i = 0
for d in dept_list :
print ( " - " + d . name + " ( " + str ( i ) + " ) " )
i + = 1
choice = - 1
# Choix du département :
while choice not in range ( len ( dept_list ) ) :
choice = int ( input ( " Entrez le numéro du département. \n > " ) )
2022-05-12 15:32:12 +02:00
dept = dept_list [ choice ] # TODO : proposer plusieurs départements
2022-05-07 18:51:23 +02:00
date_choice = - 1
# Choix de la date :
while date_choice not in ( 0 , 1 ) :
date_choice = int ( input ( " Souhaitez-vous afficher les salles disponibles maintenant (0), où à une date précise (1) ? \n > " ) )
if date_choice == 0 : # 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-05-07 18:51:23 +02:00
print ( " \n Recherche des salles disponibles, veuillez patienter... \n " )
2022-05-12 15:32:12 +02:00
available_rooms = ro . getrooms ( date , [ dept ] , ignore_list )
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-05-07 18:51:23 +02:00
for room in available_rooms :
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
if room . is_free :
2022-05-12 16:53:02 +02:00
remain_time_str = date_tools . remain_time ( date , room . end )
2022-05-12 15:32:12 +02:00
2022-05-07 18:51:23 +02:00
if room . end . hour == 23 and room . end . minute == 59 and room . end . second == 59 :
print ( " - " + room . name )
2022-02-26 19:33:53 +01:00
else :
2022-05-12 15:32:12 +02:00
print ( " - " + room . name + " | Occupée à : " + str ( room . end . hour ) + " : " + 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-05-07 18:51:23 +02:00
for room in available_rooms :
if room . name in favorites or len ( favorites ) == 0 :
if not room . is_free :
2022-05-12 16:53:02 +02:00
remain_time_str = date_tools . remain_time ( date , room . start )
2022-05-12 15:32:12 +02:00
2022-05-07 18:51:23 +02:00
if room . end . hour == 23 and room . end . minute == 59 and room . end . second == 59 :
2022-05-12 15:32:12 +02:00
print ( " - " + room . name + " | Libre à " + str ( room . start . hour ) + " : " + 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-05-12 15:32:12 +02:00
print ( " - " + room . name + " | Libre de " + str ( room . start . hour ) + " : " + str ( room . start . minute ) + " à " + str ( room . end . hour ) + " : " + 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 ( )