transitous rewrite: fix params string

This commit is contained in:
Kaaninchen
2026-08-16 11:00:31 +02:00
parent f3d9a25f95
commit 1892c734cd
5 changed files with 31 additions and 7 deletions
+1 -1
View File
@@ -31,7 +31,7 @@ except:
''' '''
TODO TODO
- 1024 embed limit - 1024 embed limit
- Automatic transfer - automatic reload of operators
- discord status - discord status
- text announcements - text announcements
- voice announcements - voice announcements
+4 -4
View File
@@ -17,10 +17,10 @@ endpoint = "https://api.transitous.org"
def get_random_stop_id() -> str: def get_random_stop_id() -> str:
assigned_station = random.choice(stations) assigned_station = random.choice(stations)
req = f"{endpoint}/api/v1/geocode?text={assigned_station}" req = f"{endpoint}/api/v1/geocode"
try: try:
response = requests.get(req, headers=headers) response = requests.get(req, params={"text": assigned_station}, headers=headers)
response.raise_for_status() response.raise_for_status()
data = response.json() data = response.json()
except requests.RequestException as e: except requests.RequestException as e:
@@ -97,10 +97,10 @@ def get_random_connection(stop_id: str) -> str:
} }
def get_trip_details(trip_id: str, from_station: str) -> dict: def get_trip_details(trip_id: str, from_station: str) -> dict:
req = f"{endpoint}/api/v2/trip?tripId={trip_id}" req = f"{endpoint}/api/v2/trip"
try: try:
response = requests.get(req, headers=headers) response = requests.get(req, params={"tripId": trip_id}, headers=headers)
response.raise_for_status() response.raise_for_status()
data = response.json() data = response.json()
except requests.RequestException as e: except requests.RequestException as e:
+1
View File
@@ -1,6 +1,7 @@
emoji_list = { emoji_list = {
"Fallback": "💺", "Fallback": "💺",
"BUS": "🚎", "BUS": "🚎",
"COACH": "🚎",
"TRAM": "🚈", "TRAM": "🚈",
"REGIONAL_RAIL": "🚊", "REGIONAL_RAIL": "🚊",
"HIGHSPEED_RAIL": "🚅", "HIGHSPEED_RAIL": "🚅",
+4 -2
View File
@@ -109,10 +109,12 @@ OPERATOR_ALIASES = {
"DB Regio AG Bayern": OPERATORS["db_bayern"], "DB Regio AG Bayern": OPERATORS["db_bayern"],
"DB Fernverkehr AG": OPERATORS["db_allgemein"], "DB Fernverkehr AG": OPERATORS["db_allgemein"],
"DB Regio AG NRW": OPERATORS["db_allgemein"], "DB Regio AG NRW": OPERATORS["db_allgemein"],
"DB Regio AG Nord": OPERATORS["db_allgemein"],
"DB Regio AG Südost": OPERATORS["db_allgemein"], "DB Regio AG Südost": OPERATORS["db_allgemein"],
"DB Regio AG Nordost": OPERATORS["db_allgemein"], "DB Regio AG Nordost": OPERATORS["db_allgemein"],
"DB Regio AG Mitte": OPERATORS["db_allgemein"], "DB Regio AG Mitte": OPERATORS["db_allgemein"],
"SBB GmbH": OPERATORS["SBB"], "SBB GmbH": OPERATORS["SBB"],
"Schweizerische Bundesbahnen SBB": OPERATORS["SBB"], "Schweizerische Bundesbahnen SBB": OPERATORS["SBB"],
} }
+21
View File
@@ -1,11 +1,14 @@
import json import json
import os import os
import importlib
from datetime import datetime, timedelta from datetime import datetime, timedelta
from zoneinfo import ZoneInfo from zoneinfo import ZoneInfo
import src.data.operators as operators import src.data.operators as operators
from src.data.emojis import emoji_list from src.data.emojis import emoji_list
_operator_mtime = None
with open("config.json", "r") as file: with open("config.json", "r") as file:
config = json.load(file) config = json.load(file)
@@ -54,7 +57,25 @@ def get_train_name(train_name: str, mode: str) -> str:
return train return train
def _reload_operators_if_changed():
global _operator_mtime
path = operators.__file__
current_mtime = os.path.getmtime(path)
if _operator_mtime is None:
_operator_mtime = current_mtime
return
if current_mtime != _operator_mtime:
importlib.reload(operators)
_operator_mtime = current_mtime
logger("operators.py wurde automatisch neu geladen (Änderungen erkannt)")
def get_operator_metadata(agency: str, route_color: str) -> dict: def get_operator_metadata(agency: str, route_color: str) -> dict:
_reload_operators_if_changed()
op_data = operators.OPERATOR_ALIASES.get(agency) or operators.OPERATORS.get(agency) or operators.OPERATORS["fallback"] op_data = operators.OPERATOR_ALIASES.get(agency) or operators.OPERATORS.get(agency) or operators.OPERATORS["fallback"]
logo = op_data.get("logo", operators.OPERATORS["fallback"]["logo"]) logo = op_data.get("logo", operators.OPERATORS["fallback"]["logo"])