aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorGravatar Evelyn2016-12-20 14:03:06 +0000
committerGravatar Evelyn2016-12-20 14:03:14 +0000
commit40b31d98609fdcdc064e33e2285393095434406a (patch)
tree1555e69864440b21da18b946aabc9bae9e56e20f /modules
parentNR: No service information and service disambiguation aren't errors (diff)
signature
NR: Train division information for services, simple '*' filtering for arrivals
Diffstat (limited to 'modules')
-rw-r--r--modules/nr.py20
1 files changed, 17 insertions, 3 deletions
diff --git a/modules/nr.py b/modules/nr.py
index eac66901..cb5d4211 100644
--- a/modules/nr.py
+++ b/modules/nr.py
@@ -52,6 +52,7 @@ class Module(object):
colours = [Utils.COLOR_LIGHTBLUE, Utils.COLOR_GREEN, Utils.COLOR_RED]
location_code = event["args_split"][0].upper()
+ filter = event["args_split"][1] if len(event["args_split"]) > 1 else ""
token = self.bot.config["nre-api-key"]
client = Client(URL)
@@ -114,7 +115,7 @@ class Module(object):
train_dest_plat = []
for train in trains:
- if (train["destinations"], train["platform"]) in train_dest_plat: continue
+ if (train["destinations"], train["platform"]) in train_dest_plat and not filter: continue
train_dest_plat.append((train["destinations"], train["platform"]))
trains_filtered.append(train)
@@ -175,7 +176,8 @@ class Module(object):
"prediction": "eta" in station or "etd" in station and not "atd" in station,
"first": len(stations) == 0,
"last" : False,
- "cancelled" : station["isCancelled"] if "isCancelled" in station else False
+ "cancelled" : station["isCancelled"] if "isCancelled" in station else False,
+ "divide_summary": ""
}
parsed["arrival"] = datetime.strptime(station["eta"] if "eta" in station else station["ata"], "%Y-%m-%dT%H:%M:%S") if "eta" in station or "ata" in station else None
parsed["departure"] = datetime.strptime(station["etd"] if "etd" in station else station["atd"], "%Y-%m-%dT%H:%M:%S") if "etd" in station or "atd" in station else None
@@ -187,6 +189,17 @@ class Module(object):
parsed["time"] = parsed["time"].strftime("%H%M")
parsed["on_time"] = parsed["datetime"] == parsed["scheduled"] and not parsed["cancelled"]
+ parsed["associations"] = {a["category"] : a for a in station["associations"][0]} if "associations" in station else {}
+ parsed["divides"] = "divide" in parsed["associations"].keys()
+ if parsed["divides"]:
+ divide = parsed["associations"]["divide"]
+ parsed["divide_summary"] = "%sDividing as %s to %s (%s)%s at " % (
+ Utils.color(Utils.FONT_BOLD),
+ divide["uid"], divide["destination"],
+ divide["destCRS"] if "destCRS" in divide else divide["destTiploc"],
+ Utils.color(Utils.FONT_RESET)
+ )
+
stations.append(parsed)
[a for a in stations if a["called"] or a["first"]][-1]["last"] = True
@@ -199,7 +212,8 @@ class Module(object):
if station["called"]: station["status"] = 0
if station["passing"]: station["status"] = 3
- station["summary"] = "%s%s(%s, %s%s%s%s)" % (
+ station["summary"] = "%s%s%s(%s, %s%s%s%s)" % (
+ station["divide_summary"],
"*" if station["passing"] else '',
station["name"] + " " if station["name"] != station["crs"] else '',
station["crs"], ("~" if station["prediction"] else '') + station["timeprefix"],