aboutsummaryrefslogtreecommitdiff
path: root/src/tube_stat
diff options
context:
space:
mode:
Diffstat (limited to 'src/tube_stat')
-rw-r--r--src/tube_stat/__init__.py0
-rw-r--r--src/tube_stat/cli.py77
2 files changed, 0 insertions, 77 deletions
diff --git a/src/tube_stat/__init__.py b/src/tube_stat/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/src/tube_stat/__init__.py
+++ /dev/null
diff --git a/src/tube_stat/cli.py b/src/tube_stat/cli.py
deleted file mode 100644
index c408804..0000000
--- a/src/tube_stat/cli.py
+++ /dev/null
@@ -1,77 +0,0 @@
-import click
-import json
-import requests
-
-with open("./config.json", "r") as e:
- config = json.load(e)
-
-TUBE_LINES = (
- "bakerloo", "victoria", "central", "circle", "district", "hammersmith-city",
- "jubilee", "metropolitan", "northern", "piccadilly", "waterloo-city", "dlr",
- "overground", "tram"
-)
-APP = config["APP"]
-KEY = config["KEY"]
-
-def get_line_color(line: str) -> tuple[int, int, int]:
- match line:
- case "bakerloo":
- return (179, 99, 5)
- case "victoria":
- return (0, 152, 212)
- case "central":
- return (227, 32, 23)
- case "circle":
- return (255, 211, 0)
- case "district":
- return (0, 120, 42)
- case "hammersmith-city":
- return (243, 169, 187)
- case "jubilee":
- return (160, 165, 169)
- case "metropolitan":
- return (155, 0, 86)
- case "northern":
- return (0, 0, 0)
- case "piccadilly":
- return (0, 54, 136)
- case "waterloo-city":
- return (149, 205, 186)
- case "dlr":
- return (0, 164, 167)
- case "overground":
- return (238, 124, 14)
- case "tram":
- return (132, 184, 23)
- case _:
- return (128, 128, 128)
-
-@click.command()
-@click.option("--line", default=None, help="comma separated tube lines, e.g bakerloo,central")
-def cli(line):
- if line:
- requested_lines = line.split(",")
- invalid_lines = [l for l in requested_lines if l not in TUBE_LINES]
- if invalid_lines:
- raise click.ClickException(f'Invalid tube lines: {', '.join(invalid_lines)}')
- else:
- requested_lines = ','.join(TUBE_LINES)
- req_url = f'https://api.tfl.gov.uk/Line/{requested_lines}/Status?app_id={APP}&app_key={KEY}'
- res = requests.get(req_url)
- res_json = json.loads(res.text)
- print_str = ""
- for i, r in enumerate(res_json):
- if len(res_json) - 1 != i:
- line_break = "\n"
- else:
- line_break = ""
- line_colour = get_line_color(r["id"])
- print_str += f'{click.style(r["name"], bg=line_colour)}: {r["lineStatuses"][0]["statusSeverityDescription"]}{line_break}'
- click.echo(print_str)
-
-if __name__ == "__main__":
- try:
- cli()
- except click.ClickException as e:
- click.echo(str(e), err=True)
- raise click.exceptions.Exit(1)