72 lines
3.1 KiB
Org Mode
72 lines
3.1 KiB
Org Mode
* SNCF Bot
|
|
|
|
Display the next departures at any SNCF train station.
|
|
|
|
** Usage
|
|
|
|
Get an access to the [[https://www.digital.sncf.com/startup/api][SNCF API]]. By creating an account, you should
|
|
receive an email with your authentication key.
|
|
|
|
The program reads the authentication key from the =SNCF_AUTH_KEY=
|
|
environment variable.
|
|
|
|
#+begin_src sh
|
|
$ export SNCF_AUTH_KEY=<sncf-key>
|
|
$ sncf vernon
|
|
Prochains départs de Vernon - Giverny (Vernon) :
|
|
┌────────┬────────────────────────────┬───────────────┐
|
|
│ Réseau │ Direction │ Heure │
|
|
├────────┼────────────────────────────┼───────────────┤
|
|
│ TER │ Rouen Rive Droite (Rouen) │ 12:05 │
|
|
│ TER │ Paris Saint-Lazare (Paris) │ 12:53 │
|
|
│ TER │ Rouen Rive Droite (Rouen) │ 13:11 │
|
|
│ TER │ Paris Saint-Lazare (Paris) │ 13:56 │
|
|
│ TER │ Paris Saint-Lazare (Paris) │ 14:52 │
|
|
│ TER │ Rouen Rive Droite (Rouen) │ 15:11 │
|
|
│ TER │ Paris Saint-Lazare (Paris) │ 16:52 │
|
|
│ TER │ Rouen Rive Droite (Rouen) │ 17:11 │
|
|
│ TER │ Paris Saint-Lazare (Paris) │ 17:56 │
|
|
│ TER │ Rouen Rive Droite (Rouen) │ 18:04 │
|
|
└────────┴────────────────────────────┴───────────────┘
|
|
#+end_src
|
|
|
|
If there are disruptions, the program will display the scheduled and
|
|
actual (estimated) times of departure, along with the associated
|
|
messages and explanations.
|
|
|
|
You can choose the train station with the first argument. The
|
|
(optional) second argument accepts an ISO 8601-formatted date and
|
|
time: the program will show departures after this time.
|
|
|
|
If you want to publish to [[https://mattermost.com/][Mattermost]], create an [[https://developers.mattermost.com/integrate/webhooks/incoming/][incoming webhook]] by
|
|
going to *Product menu* (top left) → *Integrations* → *Incoming
|
|
webhooks*.
|
|
|
|
Use the ~--mattermost-url~ option to set the webhook URL and post to
|
|
Mattermost. Optionally, you can override the default channel of the
|
|
webhook with ~--channel~.
|
|
|
|
#+begin_src
|
|
$ sncf -h
|
|
Usage: sncf [option ...] [<station>] [<datetime>]
|
|
|
|
Options:
|
|
-h --help Display this help.
|
|
--mattermost-url <mattermost-url> Mattermost incoming webhook URL. [default: #f]
|
|
--channel <mattermost-channel> Mattermost channel. [default: #f]
|
|
|
|
Arguments:
|
|
station: Name of the station (default Vernon-Giverny). [default: #f]
|
|
datetime: Date and time (ISO 8601 format). [default: #f]
|
|
#+end_src
|
|
|
|
** Building instructions
|
|
|
|
The build script will use Docker to build a fully static executable.
|
|
The Dockerfile is based on the [[https://hub.docker.com/r/gerbil/alpine][gerbil/alpine]] image.
|
|
|
|
#+begin_src sh
|
|
$ ./build.sh
|
|
#+end_src
|
|
|
|
This project depends on [[https://github.com/dlozeve/fancy][dlozeve/fancy]].
|