From e5bc4fe7b8fa7e1b38b3b2d31f7aac136e2f878b Mon Sep 17 00:00:00 2001 From: "theo@manjaro" Date: Thu, 24 Feb 2022 19:29:03 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20d'une=20marge=20pour=20la=20p=C3=A9riod?= =?UTF-8?q?e=20de=20temps=20ou=20la=20salle=20est=20libre?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- definitions.py | 16 ++++++++++++++++ main_cli.py | 17 +++++------------ rooms_get.py | 19 +++++++++++++++++++ 3 files changed, 40 insertions(+), 12 deletions(-) create mode 100644 definitions.py diff --git a/definitions.py b/definitions.py new file mode 100644 index 0000000..d730a4b --- /dev/null +++ b/definitions.py @@ -0,0 +1,16 @@ +def intersection(l1,l2): + """ + intersection: Renvois une liste contenant les éléments communs aux deux listes + Si aucun élément n'est en commun, retourne une liste vide. + Ne supprimme pas les doublons + Arguments: + l1 : liste + l2 : liste + Résultat: + Une liste contenant tout les éléments communs + """ + result = [] + for element in l1: + if element in l2: + result.append(element) + return result diff --git a/main_cli.py b/main_cli.py index 65e6726..f817e90 100644 --- a/main_cli.py +++ b/main_cli.py @@ -18,8 +18,10 @@ Created on Thu Feb 24 17:14:05 2022 # Modules : import datetime +# Fichiers locaux : import date_tools import rooms_get as ro +import definitions as lib # Fonctions : @@ -42,21 +44,12 @@ def main() : date_choice = int(input("Souhaitez-vous afficher les salles disponibles maintenant (1), où à une date précise (2) ?\n> ")) if date_choice == 1 : - date = datetime.datetime - date_d = date.today().date() - datet = date.today() + date = datetime.datetime.today() else : date = date_tools.date_input() - date_d = date.today().date() - datet = date.today() - hour = date.now().time().hour - minutes = date.now().time().minute + available_rooms = lib.intersection(ro.free_at(date),ro.free_at(date+datetime.timedelta(minutes=30))) - ro.sched_get(date_d) - total_rooms, used_rooms = ro.used_rooms_get(datet) - available_rooms = ro.available_rooms_get(total_rooms, used_rooms) - - print("Les salles suivantes sont disponibles à " + str(hour) + ":" + str(minutes) + ", le " + str(date_d) + " :\n") + print("Les salles suivantes sont disponibles à " + str(date.hour) + ":" + str(date.minute) + ", le " + str(date.day) + " :\n") for room in available_rooms : print(" - " + room) diff --git a/rooms_get.py b/rooms_get.py index b742765..22520cc 100644 --- a/rooms_get.py +++ b/rooms_get.py @@ -46,6 +46,7 @@ def sched_get(date) : year = str(date.year) r = requests.get("https://adecons.unistra.fr/jsp/custom/modules/plannings/anonymous_cal.jsp?resources=30626&projectId=8&calType=ical&firstDate="+year+"-"+month+"-"+day+"&lastDate="+year+"-"+month+"-"+day) + print(r.content) return r.content @@ -112,3 +113,21 @@ def available_rooms_get(total_rooms, used_rooms) : available_rooms.append(room) return available_rooms + +def free_at(datet): + """ + Retourne la liste des salles dispo à cette date + + Parameters + ---------- + datet: datetime.Date + La date à laquelle se fixer + + Returns + ------- + available_rooms : list + Liste des salles disponibles. + """ + total,used = used_rooms_get(datet) + free = available_rooms_get(total,used) + return free