aboutsummaryrefslogtreecommitdiff
path: root/readme.md
blob: c38542f68521e761b11b78a36cd6aa5dd220cb3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# trein?

domme python scripts voor openbaar vervoer in nederland in je agenda

`storingen` is een script die je met fcgiwrap en nginx kunt draaien op een
server om een ical bestand te genereren die je laat weten wanneer de ns weer
eens niet rijdt

`autoplanner` neemt een icalendar bestand in (met bijvoorbeeld een rooster), en
vraagt voor elke dag een reisadvies op om bij de vroegste afspraak op tijd te
zijn

## setup

### storingen

de storingen API heeft helaas een API key nodig, maar gelukkig wordt deze
lekker veilig opgeslagen in een plain-text bestand `storingen.key`.

trajectnamen staan op losse regels in `storingen.cfg`, een voorbeeld hiervan
staat in deze repository.

hier is een voorbeeld nginx configuratie (snippet die in een server block kan):

```nginx
location /ical/trein.ics {
  gzip off;
  autoindex on;
  fastcgi_pass unix:/var/run/fcgiwrap.socket;
  include /etc/nginx/fastcgi_params;
  fastcgi_param SCRIPT_FILENAME /var/trein/storingen.fcgi;
}
```

### autoplanner

deze gebruikt de openbare reisplanner om reisadvies op te vragen. omdat deze
methode van de NS api gebruiken niet officieel ondersteund is kan deze mogelijk
ooit stoppen met werken.

dit script verwacht een bestand `autoplanner.json`, die gebaseerd is op
`autoplanner.def.json`, en leest een icalendar agenda vanaf stdin.

voorbeeldaanroep:

```bash
./autoplanner.py < rooster.ics
```