diff --git a/modules/ical.py b/modules/ical.py index c6868c6..5c07a1a 100644 --- a/modules/ical.py +++ b/modules/ical.py @@ -15,6 +15,8 @@ class IcalModule: def __init__(self, config): self.cals = config.cals + self.delayed_departure = 100 + self._cached_file = ".ical-%s.cache" self.cache_time = 15 @@ -162,7 +164,7 @@ class IcalModule: def event_coming(self, config): now = datetime.now(tz=pytz.timezone('Europe/Paris')) - coming = datetime.now(tz=pytz.timezone('Europe/Paris')) + timedelta(minutes=80) + coming = datetime.now(tz=pytz.timezone('Europe/Paris')) + timedelta(minutes=self.delayed_departure) for evt in self.get_events(config): # Looking only the first event diff --git a/modules/ratp.py b/modules/ratp.py index 15724a6..8969dac 100644 --- a/modules/ratp.py +++ b/modules/ratp.py @@ -92,17 +92,17 @@ class IDFMAPI: res = json.load(f) # Convert time to hours - if mode != "rers": - now = datetime.fromisoformat(res["_metadata"]["date"]) + now = datetime.fromisoformat(res["_metadata"]["date"]) - for i in range(len(res["result"]["schedules"])): - if "message" in res["result"]["schedules"][i]: - if res["result"]["schedules"][i]["message"] == "A l'approche" or res["result"]["schedules"][i]["message"] == "A l'arret": - res["result"]["schedules"][i]["message"] = now.strftime("%H:%M") - elif res["result"]["schedules"][i]["message"].endswith(" mn"): - res["result"]["schedules"][i]["message"] = (now + timedelta(minutes=int(res["result"]["schedules"][i]["message"].split(" ")[0]))).strftime("%H:%M") + for i in range(len(res["result"]["schedules"])): + if "message" in res["result"]["schedules"][i]: + if res["result"]["schedules"][i]["message"] == "Train a l'approche" or res["result"]["schedules"][i]["message"] == "Train à l'approche" or res["result"]["schedules"][i]["message"] == "Train à quai" or res["result"]["schedules"][i]["message"] == "Train a quai" or res["result"]["schedules"][i]["message"] == "A l'approche" or res["result"]["schedules"][i]["message"] == "A l'arret": + res["result"]["schedules"][i]["message"] = now.strftime("%H:%M") + elif res["result"]["schedules"][i]["message"].endswith(" mn"): + res["result"]["schedules"][i]["message"] = (now + timedelta(minutes=int(res["result"]["schedules"][i]["message"].split(" ")[0]))).strftime("%H:%M") + res["result"]["schedules"][i]["message"] = res["result"]["schedules"][i]["message"].replace(" Retardé", "+").replace("Train retardé", "...") - return res["result"]["schedules"] + return [m for m in res["result"]["schedules"] if "message" in m and m["message"] != "Train sans arrêt"] def get_weather(self): ret = {} @@ -278,6 +278,9 @@ class RATPNextStopModule: max_dest = 64 for dest, msgs in prep.items(): + if len(msgs) == 0: + continue + align_x = line_height * 2 sz = fnt_B.getsize(dest)[0]