diff --git a/docker-compose.yml b/docker-compose.yml index e4c9782..8a561b4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,10 +15,12 @@ services: - MAX_RESULTS=200 - DURATION=240 - DELETE_AFTER_MINUTES=30 - - UPDATE_INTERVAL_MINUTES=1 - - TRANSFER_TIME=17:00 + - UPDATE_INTERVAL_MINUTES=5 + - TRANSFER_TIME=19:00 # Hildesheim HBF, Braunschweig HBF, Hannover HBF - STATION_IDS=8000169,8000049,8000152 + volumes: + - /etc/localtime:/etc/localtime:ro restart: always networks: default: diff --git a/init.sql b/init.sql index e8ca333..fccc42d 100644 --- a/init.sql +++ b/init.sql @@ -9,6 +9,7 @@ CREATE TABLE IF NOT EXISTS trips ( trip_id VARCHAR(255), planned_timestamp DATETIME, delay INT, + destination VARCHAR(255), INDEX idx_fahrt_nr_timestamp (fahrt_nr, timestamp) ); diff --git a/main.go b/main.go index 0a968a5..ad484ba 100644 --- a/main.go +++ b/main.go @@ -233,20 +233,20 @@ func savePosition(db *sql.DB, dep Departure, apiBaseURL string) { if err == sql.ErrNoRows { id := uuid.New().String() - _, err = db.Exec("INSERT INTO trips (id, timestamp, planned_timestamp, delay, train_name, fahrt_nr, trip_id, latitude, longitude) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)", - id, whenTime, plannedWhenTime, dep.Delay, dep.Line.Name, dep.Line.FahrtNr, dep.TripId, latitude, longitude) + _, err = db.Exec("INSERT INTO trips (id, timestamp, planned_timestamp, delay, train_name, fahrt_nr, trip_id, latitude, longitude, destination) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", + id, whenTime, plannedWhenTime, dep.Delay, dep.Line.Name, dep.Line.FahrtNr, dep.TripId, latitude, longitude, tripDetails.Destination.Name) if err != nil { log.Printf("Fehler beim Speichern der neuen Position für TripID %s: %v\n", dep.TripId, err) } else { - log.Printf("Neue Position gespeichert (ID: %s, Zug: %s, FahrtNr: %s, Lat: %f, Lon: %f, Verspätung: %d)\n", id, dep.Line.Name, dep.Line.FahrtNr, latitude, longitude, dep.Delay) + log.Printf("Neue Position gespeichert (ID: %s, Zug: %s, FahrtNr: %s, Lat: %f, Lon: %f, Verspätung: %d, Ziel: %s)\n", id, dep.Line.Name, dep.Line.FahrtNr, latitude, longitude, dep.Delay, tripDetails.Destination.Name) } } else if err == nil { - _, err = db.Exec("UPDATE trips SET timestamp = ?, planned_timestamp = ?, delay = ?, train_name = ?, trip_id = ?, latitude = ?, longitude = ? WHERE id = ?", - whenTime, plannedWhenTime, dep.Delay, dep.Line.Name, dep.TripId, latitude, longitude, existingID) + _, err = db.Exec("UPDATE trips SET timestamp = ?, planned_timestamp = ?, delay = ?, train_name = ?, trip_id = ?, latitude = ?, longitude = ?, destination = ? WHERE id = ?", + whenTime, plannedWhenTime, dep.Delay, dep.Line.Name, dep.TripId, latitude, longitude, tripDetails.Destination.Name, existingID) if err != nil { log.Printf("Fehler beim Aktualisieren der Position für TripID %s: %v\n", dep.TripId, err) } else { - log.Printf("Position aktualisiert (ID: %s, Zug: %s, FahrtNr: %s, Lat: %f, Lon: %f, Verspätung: %d)\n", existingID, dep.Line.Name, dep.Line.FahrtNr, latitude, longitude, dep.Delay) + log.Printf("Position aktualisiert (ID: %s, Zug: %s, FahrtNr: %s, Lat: %f, Lon: %f, Verspätung: %d, Ziel: %s)\n", existingID, dep.Line.Name, dep.Line.FahrtNr, latitude, longitude, dep.Delay, tripDetails.Destination.Name) } } else { log.Printf("Fehler bei der Überprüfung des existierenden Eintrags für TripID %s: %v\n", dep.TripId, err)