eurolines-de

0.2.0 • Public • Published

eurolines-de

JavaScript client for the eurolines.de coach travel API. Complies with the friendly public transport format. In progess…

npm version Build Status Greenkeeper badge dependency status dev dependency status license chat on gitter

Installation

npm install --save eurolines-de

Usage

This package contains data in the Friendly Public Transport Format.

stations([query], [opt])

Get all stations operated bei eurolines.

const stations = require('eurolines-de').stations
 
stations().then(console.log) // all stations
 
stations('Berl') // search for stations
stations({origin: 'Berlin'}) // search for stations reachable by the station with id 'Berlin'
stations('Frankf', {origin: 'Berlin'}) // search in stations reachable from Berlin

Searches stations based on query. If no query parameter is found, returns all stations (still regarding opt instead).

The defaults for opt look like this:

{
    language: 'de',
    origin: null // set to specific station id to filter for stations reachable by there
}

Returns a Promise that will resolve in an array of stations in the Friendly Public Transport Format which looks as follows:

[
    {
        type: 'station',
        id: 'Aachen',
        name: 'Aachen (DE)'
    },
    {
        type: 'station',
        id: 'Aalborg',
        name: 'Aalborg (DK)'
    },
    {
        type: 'station',
        id: 'Aalen',
        name: 'Aalen (DE)'
    }
    // …
]

journeys(origin, destination, date = Date.now(), opt = {})

Get directions and prices for routes from A to B. scraped 😕

const journeys = require('eurolines-de').journeys
 
journeys('Berlin', 'Paris', new Date(), {passengers: 1})
.then(console.log)
.catch(console.error)

defaults, partially overridden by the opt parameter, looks like this:

const defaults = {
    passengers: 1
}

Returns a Promise that will resolve with an array of journeys in the Friendly Public Transport Format which looks as follows. Note that the legs are not fully spec-compatible, as the schedule is missing in legs, all dates are Date() objects instead of ISO strings and due to API-specific reasons, there will always only be one leg and the additional transfers key instead.

[
    {
        origin: 'Berlin',
        destination: 'Paris',
        type: 'journey',
        id: 'BerlinParisWed Jul 19 2017 19:30:00 GMT+0200 (CEST)Thu Jul 20 2017 09:45:00 GMT+0200 (CEST)0',
        departure: '2017-07-19T17:30:00.000Z', // JS Date() object
        arrival: '2017-07-20T07:45:00.000Z', // JS Date() object
        transfers: 0,
        price: {
            currency: 'EUR',
            amount: 83,
            fares: [
                {
                    type: 'fare',
                    model: 'normal',
                    price: {
                        currency: 'EUR',
                        amount: 83
                    }
                }
            ]
        },
        legs: [
            {
                origin: 'Berlin',
                destination: 'Paris',
                departure: '2017-07-19T17:30:00.000Z', // JS Date() object
                arrival: '2017-07-20T07:45:00.000Z' // JS Date() object
            }
        ]
    }
    // …
]

See also

  • FPTF - "Friendly public transport format"
  • FPTF-modules - modules that also use FPTF

Contributing

If you found a bug, want to propose a feature or feel the urge to complain about your life, feel free to visit the issues page.

Package Sidebar

Install

npm i eurolines-de

Weekly Downloads

1

Version

0.2.0

License

ISC

Unpacked Size

11.3 kB

Total Files

6

Last publish

Collaborators

  • juliuste