Pegelonline/po_modules/po_station_reader.py
2025-09-29 16:26:42 +02:00

39 lines
1.3 KiB
Python

from . import poBaseURL
from .po_station import PoStation
from .urlreader import UrlReader
class PoStationReader(UrlReader):
def __init__(self):
"""
Initialisiert die Super-Klasse mit URL für die Stationen
"""
super().__init__(poBaseURL + 'stations.json')
def get_stations(self):
"""
Fragt die Liste aller Stationen via UrlReader.get_json_response ab und macht PoStation daraus oder None im Fehlerfall
:return: list[PoStation] | None
"""
print("PoStationReader::get_stations: Lade Stationen herunter...")
stations_json = self.get_json_response()
if stations_json is None or len(stations_json) == 0:
# Keine Stationen erhalten → Abbruch
print("PoStationReader::get_stations: Keine Stationen erhalten")
return None
stations = []
for station_json in stations_json:
try:
# Versuche eine Station zu erstellen
stations.append(PoStation(station_json))
except Exception as e:
# Fehler → Überspringe diese Station
print("PoStationReader::get_stations: Fehler: error=%s, json=%s" % (e, station_json))
print("PoStationReader::get_stations: %d Stationen erhalten" % (len(stations),))
return stations