diff --git a/modules/ratp.py b/modules/ratp.py index 41a9835..3c75ac9 100644 --- a/modules/ratp.py +++ b/modules/ratp.py @@ -194,16 +194,8 @@ class IDFMAPI: def get_line_weather(self, res, disruptions, mode, line): for l in res["lines"]: if l["id"] == "line:IDFM:" + IDFMAPI.lines[mode][line]: - disruptionIds = [] - disruptionTypes = {} for impactedObject in l["impactedObjects"]: for disruptionId in impactedObject["disruptionIds"]: - if disruptionId not in disruptionIds: - disruptionTypes[disruptionId] = impactedObject["type"] - disruptionIds.append(disruptionId) - - for disruptionId in disruptionIds: - impactType = disruptionTypes[disruptionId] status = "past" for ap in disruptions[disruptionId]["applicationPeriods"]: end = datetime.strptime(ap["end"], "%Y%m%dT%H%M%S") @@ -217,12 +209,7 @@ class IDFMAPI: status = "active" break - - if "cause" in disruptions and disruptions["cause"] == "INFORMATION": - continue - disruptions[disruptionId]["status"] = status - disruptions[disruptionId]["scope"] = impactType yield disruptions[disruptionId] return None @@ -230,17 +217,12 @@ class IDFMAPI: def get_line_icon(config, mode, line, size, fill="gray", state=""): if mode == "M" or mode == "metros": icon_mode = "metro" - mode = "metros" line = line.replace("B", "bis") elif mode == "T" or mode == "tramways": icon_mode = "tram" - mode = "tramways" line = line.replace("T", "").lower() elif mode == "R" or mode == "rers": icon_mode = "RER" - mode = "rers" - elif mode == "B": - mode = "buses" img_line = None if mode == "rers" and fill != "white": @@ -433,20 +415,15 @@ class RATPWeatherModule: state = "" fill = "darkgray" - if disruption["scope"] == "line" and ("NO_SERVICE" in states or "BLOQUANTE" in states): + if "NO_SERVICE" in states: fill = "black" state = "_trafic_grand" - elif "PERTURBEE" in states: - fill = "brown" - state = "_trafic_moyen" - elif "REDUCED_SERVICE" in states or "UNKNOWN_EFFECT" in states or "OTHER_EFFECT" in states or "NO_SERVICE" in states or "BLOQUANTE" in states: + elif "REDUCED_SERVICE" in states or "UNKNOWN_EFFECT" in states or "OTHER_EFFECT" in states: fill = "teal" state = "_trafic_moyen" elif "BLOQUANTE TRAVAUX" in states: fill = "teal" state = "_travaux_moyen" - elif "INFORMATION" in states: - state = "_travaux_petit" elif len(states) > 0: fill = "gray" state = "_trafic_petit" @@ -541,8 +518,6 @@ class RATPNextStopModule: }) align -= int(line_height * 0.33) - if align < 0: - align = 0 image = image.crop((0,0,width, min(align, height))) return image, alerts diff --git a/modules/weather.py b/modules/weather.py index e4e0905..24627f3 100644 --- a/modules/weather.py +++ b/modules/weather.py @@ -147,10 +147,8 @@ class WeatherJumboCurrentModule: dayweather = list(itertools.islice(WeatherAPI().get_hourly(), 2)) - if dayweather[0]["weather"][0]["description"] != curweather["weather"][0]["description"]: - description = dayweather[0]["weather"][0]["description"] - description = description[0].upper() + description[1:] - display_longtext(draw, (width*self.middle_align, height/1.28), description + " la prochaine heure.\n" + thisdayweather["summary"] + ".", fill="black", anchor="lm", font=fnt_Rig, maxwidth=(1-self.middle_align)*width) + if dayweather[0]["weather"][0]["description"] != dayweather[1]["weather"][0]["description"]: + display_longtext(draw, (width*self.middle_align, height/1.28), dayweather[1]["weather"][0]["description"] + " la prochaine heure.\n" + thisdayweather["summary"] + ".", fill="black", anchor="lm", font=fnt_Rig, maxwidth=(1-self.middle_align)*width) else: display_longtext(draw, (width*self.middle_align, height/1.28), thisdayweather["summary"] + ".", fill="black", anchor="lm", font=fnt_Rig, maxwidth=(1-self.middle_align)*width) @@ -363,38 +361,30 @@ class WeatherAlerts: def gen_alerts(self): alerts = [] - lastStartTime = 0 - lastEndTime = 0 for alert in WeatherAPI().get_alerts(): - icon = "weather/wi-gale-warning.png" - startTime = WeatherAPI().read_timestamp(alert["start"]) - endTime = WeatherAPI().read_timestamp(alert["end"]-1) - vendTime = WeatherAPI().read_timestamp(alert["end"]) + if alert["severity"] == "Moderate": + icon = "weather/wi-small-craft-advisory.png" + elif alert["severity"] != "Moderate": + icon = "weather/wi-gale-warning.png" + else: + icon = None + startTime = WeatherAPI().read_timestamp(alert["effective"]) + endTime = WeatherAPI().read_timestamp(alert["expires"]) # Show alert timing if under a day - if startTime.hour != vendTime.hour: + if startTime.hour != endTime.hour: subtitle = startTime.strftime(("%x " if startTime.day != datetime.now().day else "") + "%X") + " - " + endTime.strftime(("%x " if startTime.day != endTime.day else "") + "%X") elif startTime.day != datetime.now().day: subtitle = startTime.strftime("%x") else: subtitle = "" - if len(alerts) >= 1 and alerts[len(alerts)-1]["title"] == alert["event"]: - startTime = lastStartTime - if startTime.hour != vendTime.hour: - alerts[len(alerts)-1]["subtitle"] = startTime.strftime(("%x " if startTime.day != datetime.now().day else "") + "%X") + " - " + endTime.strftime(("%x " if startTime.day != endTime.day else "") + "%X") - elif startTime.day != datetime.now().day: - alerts[len(alerts)-1]["subtitle"] = startTime.strftime("%x") - continue - lastStartTime = startTime - lastEndTime = vendTime - alerts.append({ "icon": icon, - "title": alert["event"], + "title": alert["headline"], "subtitle": subtitle, - "description": alert["description"], + "description": alert["desc"], }) return alerts