Skip to main content

Get faster RENFE Spanish Trains timetables in your terminal

Project description

Quality Gate Status Python Build CodeQL Analysis

RENFE TIMETABLES CLI

Get faster RENFE Spanish trains timetables in your terminal, with Python3.8+. No longer need to open the browser! Just keep using your terminal :)

See the changelog.

Installation

Install Python CLI package renfe-cli

$ pip install renfe-cli --upgrade

Usage

This CLI behaves as a person/bot going through the official renfe.com site, using selenium firefox or chrome browsers.

The navigation through the site happens in the following steps:

  1. Writes down and selects origin station
  2. Writes down and selects destination station
  3. Selects the day to search schedules for (by clicking on next day button as much as provided; defaults to 0, therefore today)
  4. Clicks on search button (waits for results to load 3 seconds by default)
  5. Gets and massages data found on the provided timetable
$ renfe-cli -h
Usage: renfe-cli [options]

Options:
  -h, --help            show this help message and exit
  -o ORIGIN, --origin=ORIGIN
                        from/origin ID of the train station. Use flag '-s
                        <possible station name>' in order to search for IDs
  -t TO, --to=TO        to/destination ID of the train station. Use flag '-s
                        <possible station name>' in order to search for IDs
  -d DAYS, --days=DAYS  number of days from today to get the timetable
                        (default: 0 - today)
  -b BROWSER, --browser=BROWSER
                        possible browsers are "firefox" and "chrome" (default:
                        firefox)
  -s SEARCH, --search=SEARCH
                        you need to get the stations IDs, searching by names;
                        in order to apply right inputs for origins and/or
                        destinations
  -e SEARCH_TIMEOUT, --search-timeout=SEARCH_TIMEOUT
                        search timeout in seconds (default to 3 seconds)
  -l LOGGING_LEVEL, --logging-level=LOGGING_LEVEL
                        logging level defaults to warning and possible values
                        are: debug, info, warning, error and critical
  -f LOGGING_FILE, --logging-file=LOGGING_FILE
                        logging file name is required if you want to submit an
                        issue with more information
  -u, --update-config   change your origin and destination stations to
                        defaults when loading this flag

Searching for IDs of train stations

When using search functionality, it will provide you with the IDs (to use as an origin or destiation train station) of the stations that are similar to the input text to search. Example:

$ renfe-cli -s sil
Today is: 2021-05-22
Searching stations like: sil
SILLA: 64200
SILS: 79202
SAN ESTEVO DO SIL: 22003
SAN PEDRO DO SIL: 22004
LE PEAGE DE ROUSSILLON: 00245
SILLE LE GUILLAUME: 00818

Getting the timetable

Timetable defaults to today, from Sils (ID is 79202) to Barcelona Passeig de Gràcia (ID is 71802):

$ renfe-cli
Today is: 2021-05-22
Searching timetable for date: 2021-5-22
From SILS to BARCELONA-PASSEIG DE GRACIA
Be patient, navigating through renfe site now...
=======================TIMETABLE======================
 Train      | Departure  | Arrival    | Duration
------------------------------------------------------
 MD         | 06.45      | 07.49      | 1 h. 4 min.
------------------------------------------------------
 MD         | 07.30      | 08.34      | 1 h. 4 min.
------------------------------------------------------
 REGIONAL   | 08.29      | 09.34      | 1 h. 5 min.
------------------------------------------------------
 MD         | 09.05      | 10.04      | 59 min.
------------------------------------------------------
 REGIONAL   | 09.59      | 11.04      | 1 h. 5 min.
------------------------------------------------------
 MD         | 10.35      | 11.34      | 59 min.
------------------------------------------------------
 REGIONAL   | 11.59      | 13.04      | 1 h. 5 min.
------------------------------------------------------
 MD         | 12.35      | 13.34      | 59 min.
------------------------------------------------------
 REGIONAL   | 13.59      | 15.04      | 1 h. 5 min.
------------------------------------------------------
 MD         | 14.35      | 15.34      | 59 min.
------------------------------------------------------
 REGIONAL   | 15.59      | 17.04      | 1 h. 5 min.
------------------------------------------------------
 MD         | 16.35      | 17.34      | 59 min.
------------------------------------------------------
 REGIONAL   | 17.59      | 19.04      | 1 h. 5 min.
------------------------------------------------------
 MD         | 18.35      | 19.34      | 59 min.
------------------------------------------------------
 MD         | 19.35      | 20.34      | 59 min.
------------------------------------------------------
 REGIONAL   | 21.09      | 22.14      | 1 h. 5 min.
------------------------------------------------------
 REGIONAL   | 21.42      | 22.46      | 1 h. 4 min.
======================================================

Which would be the same as:

$ renfe-cli -d 0 -o 79202 -t BARCE

Changing default origin and/or destination stations

In order to change default timetable stations you just need to add -u flag in the CLI, and next time you won’t need to add the used -o and -t params:

$ renfe-cli -o MADRI -t BARCE -u

If changing defaults, a file is created under user’s home directory in file ~/.renfe_default_stations.json


Issues

If Renfe’s website is changed or you find any issue or enhancements, please: create an issue

Installation alternatives (getting latest source code)

If you want to install latest source code:

$ pip install git+http://github.com/gerardcl/renfe-cli

or

$ git clone git://github.com/gerardcl/renfe-cli
$ cd renfe-cli
$ python setup.py install

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

renfe-cli-3.3.0.tar.gz (12.6 kB view hashes)

Uploaded source

Built Distribution

renfe_cli-3.3.0-py3-none-any.whl (10.6 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page