#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Thu Feb 24 17:14:05 2022 @author: antoine """ ################ ### UniSquat ### ################ """ Une application pour afficher les salles libres dans les différents départements de l'Université de Strasbourg. """ ### Fichier de l'interface en ligne de commande ### # Modules : import datetime # Fichiers locaux : import date_tools import rooms_get as ro # import definitions as lib # TODO : À quoi ça sert ? # Globales #favorites = ["C" + str(i) + " MATH" for i in range(1,12)] + ["C42-CMI"] # TODO : Ne sera pas conservé favorites = [] links = [] # Liens vers les calendriers des salles des différents bâtiments de l'université # Fonctions : def main() : """ Fonction principale. Returns ------- None. """ print("~~~ UniSquat ~~~\n") #hdelay = 1 #TODO : décalage horaire (pb de fuseau ?) #if time.localtime().tm_isdst != 0 : #hdelay = 2 ignore_list = ["salle non définie", "salle en Distanciel"] dept_filen = "data/dept_list.txt" 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> ")) dept = dept_list[choice] # TODO : proposer plusieurs départements 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 date = datetime.datetime.today() else : # Heure mannuelle date = date_tools.date_input() print("\nRecherche des salles disponibles, veuillez patienter...\n") available_rooms = ro.getrooms(date, [dept], ignore_list) # Salles libres à la date indiquée : print("\nLes salles suivantes sont disponibles à " + str(date.hour) + ":" + str(date.minute) + ", le " + str(date.date()) + " :\n") 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 : remain_time_str = date_tools.remain_time(date, room.end) print(room.end) if room.end.hour == 23 and room.end.minute == 59 and room.end.second == 59 : print(" - " + room.name) else : 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 ?) # Salles libres prochainement : print("\nLes salles suivantes seront disponibles prochainement : \n") for room in available_rooms : if room.name in favorites or len(favorites) == 0 : if not room.is_free : remain_time_str = date_tools.remain_time(date, room.start) print(room.end) if room.end.hour == 23 and room.end.minute == 59 and room.end.second == 59 : 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 ?) else : 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 ?) if __name__=="__main__": main()