Spanien (Renfe + Cercanías), Polen, Norwegen, Dänemark, Österreich (ÖBB + Wiener Linien), Schweden (Key)
- mehrere Quellen je Land (country), Grenzen aus Natural Earth, OSM und Kachelausschnitt erweitert - Fahrpläne glätten: Unterordner im Zip, aufgefüllte Felder, fehlende parent_station, level_id - Gattung aus der Zugnummer (ÖBB 'RJ 658'), Fernverkehr auch über Routentyp 101/102/105 - Echtzeit: Verspätung vor Uhrzeit (Renfe), Fahrten ohne Datum, Key in der Adresse (Trafiklab) - httpx-Logs aus (würden Keys zeigen) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X48pE4bzjHej8w9HyZXCjb
This commit is contained in:
@@ -27,7 +27,8 @@ def parse(data: bytes, known_trips: dict):
|
||||
for name in ("arrival", "departure"):
|
||||
if s.HasField(name):
|
||||
x = getattr(s, name)
|
||||
ev += [x.time, True] if x.HasField("time") else [x.delay, False] if x.HasField("delay") else [None, False]
|
||||
# Verspätung vor Uhrzeit: Renfe liefert beides, und die Uhrzeit ist dort oft falsch
|
||||
ev += [x.delay, False] if x.HasField("delay") else [x.time, True] if x.HasField("time") else [None, False]
|
||||
else:
|
||||
ev += [None, False]
|
||||
upd.append((s.stop_sequence if s.HasField("stop_sequence") else None, s.stop_id, *ev,
|
||||
@@ -38,8 +39,10 @@ def parse(data: bytes, known_trips: dict):
|
||||
|
||||
|
||||
def fetch(url: str, key: str = "") -> bytes:
|
||||
headers = {"User-Agent": C.USER_AGENT}
|
||||
if key:
|
||||
headers = {"User-Agent": C.USER_AGENT, "ET-Client-Name": "trainpulse"} # Entur möchte eine Kennung
|
||||
if "{key}" in url: # Schweden: Key in der Adresse
|
||||
url = url.replace("{key}", key)
|
||||
elif key:
|
||||
headers["Authorization"] = f"Bearer {key}"
|
||||
r = httpx.get(url, follow_redirects=True, timeout=30, headers=headers)
|
||||
r.raise_for_status()
|
||||
|
||||
Reference in New Issue
Block a user