Ta en titt inn i krystallkulen og se om det går en buss i dag! AtB-infoskjerm til å visepå TV-skjermen på terminalrommet.
Go to file
2024-12-12 23:16:43 +01:00
.gitignore Initial commit 2024-11-30 22:10:39 +01:00
crystal_orb_cli.py updated short version of --next and fixed the help message 2024-12-12 23:16:43 +01:00
crystal_orb.py extracted atb api query to function 2024-12-12 23:07:32 +01:00
LICENSE Initial commit 2024-11-30 22:10:39 +01:00
README.md Crystal Orb MVP, omtrent. Programmet henter avgangstider og kan skrive dem til en kjørende mpv-instans 2024-12-01 01:55:29 +01:00

crystal-orb

Ta en titt inn i krystallkulen og se om det går en buss i dag.

AtB-infoskjerm til å visepå TV-skjermen på terminalrommet.

Få tak i avgangstider

Det ser ut til at API-et mpolden har laget er tilstrekkelig for å få tak i alle busser og avgangstider for et gitt stoppested (stopPlace). API-et hans er en wrapper for Entur sitt API som er litt tyngre skyts en det hackere har behov for, derav hvorfor han lagde et (tror jeg).

Informasjon fra mpolden sitt API

Dersom man gir https://mpolden.no/atb/v2/departures/ en høvelig kode for stoppested, gir den tilbake disse feltene:

  • line
    • Dette er linje-nummeret til bussen
  • scheduledDepartureTime
    • Dette er den forventede avgangstiden til bussen, basert på Entur sitt felt expectedDepartureTime
    • I tilleg finnes aimedDepartureTime og actualDepartureTime hos Entur, som er hva bussen er satt opp til etter planen og når bussen faktisk dro.
    • Av disse er naturligvis expectedDepartureTime det viktigste feltet for oss
  • destination
    • Hvor bussen skal til slutt, det er dette som står foran på bussen
    • Basert på destinationDisplay.frontText hos Entur
  • isRealTimeData
    • Hvorvidt tidspunktet er oppdatert/basert på sanntidsdata
    • Gir en indikasjon på hvor stabil informasjonen er
    • Hvis det er sanntid skal man ta det med en klype salt
    • Hvis det ikke er sanntid er det ikke vits å finne frem saltbøssen engang
  • isGoingTowardsCentrum
    • Basert på journeyPattern.directionType hos Entur
    • Busser går stort sett enten inn mot Midtbyen eller ut, dette er kjekt å vite ettersom man ofte vet hvilken retning man skal herfra

Koder for stoppested

Man kan finne stoppestedskoden på url https://stoppested.entur.org/ . De mest relevante kodene for oss på PVV er:

  • Gløshaugen: 44085
  • Høgskoleringen: 42029
  • Hesthagen: 41620

Funksjonalitet

Vi har på dette tidspunktet ingen anelse hvilken funksjonalitet dette programmet skal ha, men noen ideer har vi allerede.

  • Mulighet for å vise de kommende avgangstidene på Georg/Grzegorz
    • Mer generelt gjennom mpv på en eller annen måte
    • Gjerne med kule farger eller et nice layout
  • Hadde kanskje vært kult med et cli hvor man kjapt kan sjekke de neste bussene som drar
    • Kule farger er også nice her
  • En nettside eller en annen visualiseringsmetode
    • Nettopp for å kunne støtte et brukervennlig layout av informasjonen

Hvordan kjøre programmet slik det er

Akkurat nå funker crystal_orb.py omtrent slik:

  • Man kjører programmet med python crystal_orb.py <stoppested>
    • Stoppested kan være gløshaugen, høgskoleringen eller hesthagen
  • crystal orb får avgangsinformasjon fra mpolden sitt API
  • crystal orb lager en liste av all avgangsinformasjonen den fikk
  • crystal orb skriver teksten på en kjørende mpv-sesjon
    • Merk at mpv må ha satt opp en ipc socket som crystal orb skriver til
    • Hvis denne socket-en ikke finnes, skrives listen til stdout

Forbedringer

  • Legge til aimedDepartureTime slik at vi kan se hva avviket er
    • Av og til kjører bussen inn igjen etterslepet, dermed kan det være nyttig