From c12be512c1916eec8cffc61aa66b9093c7494725 Mon Sep 17 00:00:00 2001 From: Dorian Bourgeoisat Date: Wed, 22 May 2024 10:29:24 +0200 Subject: [PATCH] added basic functionnality (last event) --- wtdaemon.py | 45 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 41 insertions(+), 4 deletions(-) diff --git a/wtdaemon.py b/wtdaemon.py index f1eb8f2..10f0f30 100644 --- a/wtdaemon.py +++ b/wtdaemon.py @@ -1,6 +1,7 @@ import os from dotenv import load_dotenv import requests +import datetime load_dotenv() @@ -11,22 +12,54 @@ DHL_SECRET = os.getenv('DHL_SECRET') POSTE_ENDPOINT = 'https://api.laposte.fr/suivi/v2/idships/' DHL_ENDPOINT = 'https://api-eu.dhl.com/track/shipments' + +class Event: + def __init__(self, date, label, description="", location=""): + self.date = date + self.label = label + self.description = description + self.location = location + + def __lt__(self, other): + return self.date.__lt__(other.date) + + def __str__(self): + return "Event" + + def __repr__(self): + return self.__str__() + class Tracking: + def __init__(self, tracking_num): self.tracking_num = tracking_num + self.events = [] + self.eta = None return def track(self): pass def get_history(self): - pass + self.events.sort() + return self.events + + def get_last_event(self): + self.events.sort() + if len(self.events) == 0: + return None + return self.events[-1] class Poste_tracking(Tracking): def track(self): auth_headers = {'X-Okapi-Key' : OKAPI_POSTE_KEY, 'Accept' : 'application/json'} response = requests.get(POSTE_ENDPOINT + self.tracking_num, headers = auth_headers) - print(response.json()) + js = response.json() + if "shipment" in js: + for jev in js["shipment"]["event"]: + self.events.append(Event(datetime.datetime.fromisoformat(jev["date"]), jev["label"])) + if "estimDate" in js["shipment"]: + self.eta = datetime.datetime.fromisoformat(js["shipment"]["estimDate"]) class DHL_tracking(Tracking): def track(self): @@ -35,13 +68,17 @@ class DHL_tracking(Tracking): response = requests.get(DHL_ENDPOINT, params = query, headers = auth_headers) print(response.json()) +#print('[') Ptrack = Poste_tracking("CC550445947DE") Ptrack.track() +print(Ptrack.get_last_event()) print(',') Chronotrack = Poste_tracking("XA420959322FR") Chronotrack.track() +print(Chronotrack.get_last_event()) print(',') -DHLtrack = DHL_tracking("CC550445947DE") -DHLtrack.track() \ No newline at end of file +#DHLtrack = DHL_tracking("CC550445947DE") +#DHLtrack.track() +#print(']') \ No newline at end of file