From ff8c2f55db4b65b7cc958d66cd7c23103994987a Mon Sep 17 00:00:00 2001 From: Kaaninchen <124433727+kaaninchen@users.noreply.github.com> Date: Sun, 16 Aug 2026 19:12:20 +0200 Subject: [PATCH] transitous rewrite: improved station selection --- main.py | 4 +--- src/api/transitous.py | 27 +++++++++++++++++---------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/main.py b/main.py index b11792c..2161cd4 100644 --- a/main.py +++ b/main.py @@ -30,10 +30,8 @@ except: ''' TODO -- 1024 embed limit - discord status -- text announcements -- voice announcements +- config cleanup - multi language support - README ''' \ No newline at end of file diff --git a/src/api/transitous.py b/src/api/transitous.py index f8c168f..ed75d21 100644 --- a/src/api/transitous.py +++ b/src/api/transitous.py @@ -27,22 +27,30 @@ def get_random_stop_id() -> str | None: logger(f"An error occured while searching for a connection: {e}", "error") return None - if response.status_code == 404: - logger(f"Error finding station '{assigned_station}'", "error") - return None - - id = None + stop_ids = {} for entry in data: if entry.get("type") != "STOP": continue - id = entry.get("id", None) - break - if id is None: + stop_name = entry.get("name") + stop_id = entry.get("id", None) + stop_ids[stop_id] = stop_name + + if stop_name == assigned_station: + stop_ids.clear() + stop_ids[stop_id] = stop_name + break + + + if stop_ids is None: logger(f"Failed to grab ID from '{assigned_station}'", "error") return None - return id + stop_ids_list = list(stop_ids.keys()) + stops_string = ", ".join(stop_ids.values()) + logger(f"Availabe stations: {stops_string}") + chosen_stop_id = random.choice(stop_ids_list) + return chosen_stop_id def get_random_connection(stop_id: str) -> str | None: if stop_id is None: @@ -100,7 +108,6 @@ def get_random_connection(stop_id: str) -> str | None: from_station = entry.get("place", {}).get("name") break - logger(f"Station: {from_station}") return { "trip_id": trip_id, "from_station": from_station