import os from pathlib import Path DATA_DIR = Path(os.environ.get("TRAINPULSE_DATA", "/var/lib/trainpulse")) FEEDS_DIR = DATA_DIR / "feeds" # fertig aufbereitete Fahrpläne: feeds/// TZ = "Europe/Zurich" # Datenquellen. Jede hat einen GTFS-Fahrplan und einen passenden GTFS-RT-Feed (Trip Updates). SOURCES = { "ch": { # opentransportdata.swiss; GTFS-URL leer = automatisch das aktuelle Fahrplanjahr "gtfs_url": os.environ.get("TRAINPULSE_GTFS_URL", ""), "rt_url": os.environ.get("TRAINPULSE_RT_URL", "https://api.opentransportdata.swiss/la/gtfs-rt"), "rt_key": os.environ.get("TRAINPULSE_RT_KEY", ""), "needs_key": True, "rt_interval": 35, # Limit sind 2 Abfragen/Minute (Sliding Window) }, "de": { # gtfs.de (Daten von DELFI e.V.), Fahrplan CC BY 4.0, Echtzeit CC BY-SA 4.0 "gtfs_url": os.environ.get("TRAINPULSE_DE_GTFS_URL", "https://download.gtfs.de/germany/free/latest.zip"), "rt_url": os.environ.get("TRAINPULSE_DE_RT_URL", "https://realtime.gtfs.de/realtime-free.pb"), "rt_key": "", "needs_key": False, "rt_interval": 60, # ~6 MB pro Abruf, öfter lohnt sich nicht }, } ENABLED = [s for s in os.environ.get("TRAINPULSE_SOURCES", "ch,de").split(",") if s in SOURCES] # OpenStreetMap: daraus werden das Schienennetz (für pfaedle) gefiltert OSM_URLS = os.environ.get("TRAINPULSE_OSM_URLS", " ".join([ "https://download.geofabrik.de/europe/switzerland-latest.osm.pbf", "https://download.geofabrik.de/europe/germany-latest.osm.pbf", ])).split() PFAEDLE = os.environ.get("TRAINPULSE_PFAEDLE", "pfaedle") OSMIUM = os.environ.get("TRAINPULSE_OSMIUM", "osmium") PMTILES = os.environ.get("TRAINPULSE_PMTILES", "pmtiles") TILES_BBOX = "5.5,45.7,15.3,55.2" # Schweiz + Deutschland mit etwas Rand TILES_MAXZOOM = 14 # die Karte vergrössert Vektorkacheln darüber hinaus selbst; spart viel Platz USER_AGENT = "trainpulse/0.1 (+https://scarriffle.com)"