Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/juliuste/tallink
JavaScript client for the tallink API.
https://github.com/juliuste/tallink
ferry library public-transport
Last synced: 9 days ago
JSON representation
JavaScript client for the tallink API.
- Host: GitHub
- URL: https://github.com/juliuste/tallink
- Owner: juliuste
- License: isc
- Created: 2017-02-13T19:43:16.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2020-06-01T07:40:17.000Z (over 4 years ago)
- Last Synced: 2024-12-06T07:46:44.535Z (28 days ago)
- Topics: ferry, library, public-transport
- Language: JavaScript
- Size: 96.7 KB
- Stars: 2
- Watchers: 4
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: readme.md
- License: license
Awesome Lists containing this project
README
# tallink
JavaScript client for the [tallink](https://tallink.com) ferry journey API. Complies with the [friendly public transport format](https://github.com/public-transport/friendly-public-transport-format) (`FPTF 0.0`). Inofficial, using endpoints by *Tallink*. Ask them for permission before using this module in production.
[![npm version](https://img.shields.io/npm/v/tallink.svg)](https://www.npmjs.com/package/tallink)
[![Build Status](https://travis-ci.org/juliuste/tallink.svg?branch=master)](https://travis-ci.org/juliuste/tallink)
[![Greenkeeper badge](https://badges.greenkeeper.io/juliuste/tallink.svg)](https://greenkeeper.io/)
[![license](https://img.shields.io/github/license/juliuste/tallink.svg?style=flat)](LICENSE)
[![chat on gitter](https://badges.gitter.im/juliuste.svg)](https://gitter.im/juliuste)## Installation
```sh
npm install tallink
```## Usage
```js
const tallink = require('tallink')
```The `tallink` module bundles two methods: [`stations()`](#stations) and [`journeys()`](#journeysoriginid-destinationid-startdate-enddate-opt) which follow [`FPTF`](https://github.com/public-transport/friendly-public-transport-format) `0.0`.
### stations()
tallink network. Returns a `Promise` that resolves in a list of all stations:
```js
tallink.stations().then(…)
```would give you
```js
[
{type: "station", id: "hel", name: "Helsinki"},
{type: "station", id: "tal", name: "Tallinn"},
{type: "station", id: "sto", name: "Stockholm"},
{type: "station", id: "tur", name: "Turku"},
{type: "station", id: "rig", name: "Riga"},
{type: "station", id: "ala", name: "Åland"},
{type: "station", id: "vis", name: "Visby"}
]
```### journeys(originID, destinationID, startDate, endDate, opt)
Find journeys for a given time period (in days). Returns a `Promise` that resolves in a list of matching journeys.
```js
tallink.journeys(originID, destinationID, startDate, endDate, opt).then(…)
tallink.journeys(
'tal', // Tallinn
'hel', // Helsinki
new Date('2017-03-02T00:00:00'),
new Date('2017-03-05T00:00:00'), // setting this to the same day as startDate would give you results for a single day
// default options
{
locale: 'en', // route name language
country: 'DE',
includeOvernight: true
}
).then(…)
```would give you
```js
[
{
type: "journey",
id: "1565203",
routeInfo: {
id: "tal-hel",
name: "Tallinn-Helsinki"
},
overnight: false,
legs: [{
origin: {
type: "station",
id: "tal",
pier: "DTER"
},
destination: {
type: "station",
id: "hel",
pier: "LSA2"
},
departure: "2017-03-02T07:30:00.000Z", // Date() Object
arrival: "2017-03-02T09:30:00.000Z", // Date() Object
ship: "MEGASTAR",
rooms: true,
operator: "tallink",
mode: "ferry",
public: true
}],
price: {
amount: 36,
currency: "EUR"
}
}
// …
]
```## 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](https://github.com/juliuste/tallink/issues).