crystal-orb/README.md

78 lines
3.1 KiB
Markdown

# 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](https://github.com/mpolden/atb) 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
-