#!/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 # 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é 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") 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> ")) if date_choice == 1 : # Heure système date = datetime.datetime.today() else : # Heure mannuelle date = date_tools.date_input() available_rooms = ro.getrooms(date,links=links) # 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.values() : 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"] : deltasec = room["end"].timestamp() - date.timestamp() 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" # print(" - " + room["name"]+" | occupée dans : "+str(int(deltasec/60+0.5))+" minutes") if room["end"].hour == 23 and room["end"].minute == 59 : print(" - " + room["name"]) else : 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 ?) # Salles libres prochainement : print("\nLes salles suivantes seront disponibles prochainement : \n") for room in available_rooms.values() : if room["name"] in favorites or len(favorites) == 0 : if not room["is_free"] : deltasec = room["start"].timestamp() - date.timestamp() 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" # print(" - " + room["name"]+" | libre dans : "+str(int(deltasec/60+0.5))+" minutes") if room["end"].hour == 23 and room["end"].minute == 59 : 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 ?) else : 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 ?) if __name__=="__main__": main()