transitous rewrite: fix color from API

This commit is contained in:
Kaaninchen
2026-08-16 14:23:56 +02:00
parent 5a2d0bf8d6
commit a4d9cb36f0
3 changed files with 14 additions and 15 deletions
+9 -10
View File
@@ -17,7 +17,6 @@ endpoint = "https://api.transitous.org"
def get_random_stop_id() -> str | None: def get_random_stop_id() -> str | None:
assigned_station = random.choice(stations) assigned_station = random.choice(stations)
logger(f"Station: {assigned_station}")
req = f"{endpoint}/api/v1/geocode" req = f"{endpoint}/api/v1/geocode"
try: try:
@@ -50,7 +49,6 @@ def get_random_connection(stop_id: str) -> str | None:
return None return None
now = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ") now = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
print(f"Aktuelle Zeit für Query: {now}")
cursor = None cursor = None
max_pages = 5 max_pages = 5
min_results = 5 min_results = 5
@@ -82,7 +80,6 @@ def get_random_connection(stop_id: str) -> str | None:
if entry["mode"] in blacklist: if entry["mode"] in blacklist:
continue continue
else: else:
print(entry["mode"])
trip_ids.append(entry["tripId"]) trip_ids.append(entry["tripId"])
if len(trip_ids) >= min_results: if len(trip_ids) >= min_results:
@@ -104,6 +101,7 @@ def get_random_connection(stop_id: str) -> str | None:
from_station = entry.get("place", {}).get("name") from_station = entry.get("place", {}).get("name")
break break
logger(f"Station: {from_station}")
return { return {
"trip_id": trip_id, "trip_id": trip_id,
"from_station": from_station "from_station": from_station
@@ -127,7 +125,7 @@ def get_trip_details(random_connection: dict | None) -> dict | None:
end_time = legs["endTime"] end_time = legs["endTime"]
from_station = random_connection["from_station"] from_station = random_connection["from_station"]
display_name = legs["displayName"] display_name = legs["displayName"]
trip_from = legs["from"]["name"] train_from = legs["from"]["name"]
goes_to = legs["to"]["name"] goes_to = legs["to"]["name"]
start_time = legs["startTime"] start_time = legs["startTime"]
mode = legs["mode"] mode = legs["mode"]
@@ -140,15 +138,16 @@ def get_trip_details(random_connection: dict | None) -> dict | None:
departure = convert_iso_string(start_time) departure = convert_iso_string(start_time)
train_name = get_train_name(display_name, mode) train_name = get_train_name(display_name, mode)
if trip_from == from_station: if train_from == from_station:
long_name = f"{train_name} nach {goes_to} von {trip_from}" long_name = f"{train_name} nach {goes_to} von {train_from}"
else: else:
long_name = f"{train_name} nach {goes_to} von {trip_from}, über {from_station}" long_name = f"{train_name} nach {goes_to} über {from_station}"
trip_details = { trip_details = {
"long_name": long_name, "long_name": long_name,
"short_name": display_name, "short_name": display_name,
"from": from_station, "station": from_station,
"from": train_from,
"to": goes_to, "to": goes_to,
"agency": legs["agencyName"], "agency": legs["agencyName"],
"route_color": legs.get("routeColor"), "route_color": legs.get("routeColor"),
@@ -159,8 +158,8 @@ def get_trip_details(random_connection: dict | None) -> dict | None:
"stops": {} "stops": {}
} }
trip_details["stops"][trip_from] = departure trip_details["stops"][train_from] = departure
print(trip_from)
for stop in legs["intermediateStops"]: for stop in legs["intermediateStops"]:
stop_arrival = convert_iso_string(stop["arrival"]) stop_arrival = convert_iso_string(stop["arrival"])
trip_details["stops"][stop["name"]] = stop_arrival trip_details["stops"][stop["name"]] = stop_arrival
+2 -2
View File
@@ -27,13 +27,13 @@ def build_info_embed() -> discord.Embed:
arrival = format_timestamp_to_dc(trip["arrival"]) arrival = format_timestamp_to_dc(trip["arrival"])
embed = discord.Embed( embed = discord.Embed(
title = trip["long_name"], title = trip["long_name"],
description=f"Abfahrt von {trip["from"]} um {departure}. Ankunft um {arrival}", description=f"Abfahrt von {trip["station"]} um {departure}. Ankunft um {arrival}",
color = metadata["color"] color = metadata["color"]
) )
route_lines = [] route_lines = []
for stop_name, stop_arrival in trip["stops"].items(): for stop_name, stop_arrival in trip["stops"].items():
if stop_name == trip["from"]: if stop_name == trip["station"]:
route_lines.append(f"**• {stop_name} ({stop_arrival} Uhr)**") route_lines.append(f"**• {stop_name} ({stop_arrival} Uhr)**")
else: else:
route_lines.append(f"{stop_name} ({stop_arrival} Uhr)") route_lines.append(f"{stop_name} ({stop_arrival} Uhr)")
+3 -3
View File
@@ -30,7 +30,6 @@ def choose_connection() -> dict | None:
def validate_connection(start_time: str, end_time: str) -> bool: def validate_connection(start_time: str, end_time: str) -> bool:
now = datetime.now(timezone.utc) now = datetime.now(timezone.utc)
start_dt = datetime.fromisoformat(start_time.replace("Z", "+00:00")) start_dt = datetime.fromisoformat(start_time.replace("Z", "+00:00"))
print(start_dt)
end_dt = datetime.fromisoformat(end_time.replace("Z", "+00:00")) end_dt = datetime.fromisoformat(end_time.replace("Z", "+00:00"))
max_wait_time = config.get("max_wait_time", 6) max_wait_time = config.get("max_wait_time", 6)
@@ -98,14 +97,15 @@ def get_operator_metadata(agency: str, route_color: str) -> dict:
slogans = op_data.get("slogan") slogans = op_data.get("slogan")
color = op_data.get("color") color = op_data.get("color")
if color is None: if color is None or color == 0xFFFFFF:
if route_color is not None: if route_color is not None:
try: try:
color = int(route_color, 16) color = int(route_color, 16)
print(color)
except ValueError: except ValueError:
color = operators.OPERATORS["fallback"]["color"] color = operators.OPERATORS["fallback"]["color"]
else: else:
logger(f"Managed to get color from API: {color}") logger(f"Managed to get color from API, edit src/data/operators.py if you don't like it")
else: else:
color = operators.OPERATORS["fallback"]["color"] color = operators.OPERATORS["fallback"]["color"]
return { return {