Skip to content

Display the next departures at any SNCF train station.

License

Notifications You must be signed in to change notification settings

dlozeve/sncf-bot

Repository files navigation

SNCF Bot

Display the next departures at any SNCF train station.

Usage

Get an access to the 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.

$ 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         │
└────────┴────────────────────────────┴───────────────┘

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 Mattermost, create an incoming webhook by going to Product menu (top left) → IntegrationsIncoming 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.

$ 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]

Building instructions

Static executable using Docker

The build script will use Docker to build a fully static executable sncf-static in the current directory. The Dockerfile is based on the gerbil/alpine image.

./build.sh

With your local Gerbil installation

This project depends on dlozeve/fancy. Install it with the package manager:

gxpkg install github.com/dlozeve/fancy

The project comes with a build script for the standard build tool, which installs the sncf executable in $GERBIL_HOME/bin:

./build.ss

About

Display the next departures at any SNCF train station.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published