slovenske-zeleznice
JavaScript client for the Slovenian 🇸🇮 Slovenske železnice (SŽ) railway API. Inofficial, using SŽ endpoints. Ask them for permission before using this module in production.
Installation
npm install --save slovenske-zeleznice
Usage
const sz =
The slovenske-zeleznice
module conforms to the FPTI-JS 0.3.2
standard for JavaScript public transportation modules and exposes the following methods:
Method | Feature description | FPTI-JS 0.3.2 |
---|---|---|
stations.all([opt]) |
All stations of the SŽ network, such as Ljubljana or Maribor |
✅ yes |
journeys(origin, destination, [opt]) |
Journeys between stations | ✅ yes |
legStopovers(legId) |
All stopovers for a leg (all stations the train passes on that leg) | ❌ no |
stations.all([opt])
Get all stations of the SŽ network, such as Ljubljana
or Maribor
. See this method in the FPTI-JS 0.3.2
spec.
Supported Options
There currently aren't any supported options for this method, but this might change in a future release.
Example
const sz = const stationStream = szstationsall stationStream
type: "station" id: "42357" name: "Ljubljana Brinje"
journeys(origin, destination, [opt])
Find journeys between stations. See this method in the FPTI-JS 0.3.2
spec.
Supported Options
Attribute | Description | FPTI-spec | Value type | Default |
---|---|---|---|---|
when |
Journey date, synonym to departureAfter |
✅ | Date |
new Date() |
departureAfter |
List journeys with a departure (first leg) after this date | ✅ | Date |
new Date() |
results |
Max. number of results returned | ✅ | Number |
null |
interval |
Results for how many minutes after when /departureAfter |
✅ | Number |
null |
transfers |
Max. number of transfers | ✅ | Number |
null |
Note that, unless opt.interval
is specified, the module will return journeys that start after when
/departureAfter
, but before the beginning of the following calendar day in Europe/Ljubljana
time zone.
Example
const ljubljana = '42300'const maribor = // FPTF station type: 'station' id: '43400' // …sz
type: "journey" id: "2004###2019-06-27###42300###43400" info: "Timetable valid from 9. Dec. 2018 do 14. Dec. 2019." legs: origin: type: "station" id: "42300" name: "Ljubljana" destination: type: "station" id: "43400" name: "Maribor" departure: "2019-06-27T10:50:00.000+02:00" arrival: "2019-06-27T13:35:00.000+02:00" mode: "train" public: true line: type: "line" id: "2004" name: "LPV 2004" number: "2004" product: "LPV" mode: "train" public: true operator: type: "operator" id: "sž" name: "Slovenske železnice" url: "http://www.slo-zeleznice.si" operator: type: "operator" id: "sž" name: "Slovenske železnice" url: "http://www.slo-zeleznice.si" bicycle: true wifi: false id: "2004###2019-06-27###42300###43400" price: amount: 956 currency: "EUR"
legStopovers(legId)
All stopovers for a given leg (all stations the train passes on that leg). Obtain a legId
using the journeys(origin, destination, [opt])
method. Returns a Promise
that resolves in a list of stopovers.
Example
const legId = '2004###2019-06-27###42300###43400' // taken from the journeys example abovesz
type: "stopover" stop: type: "station" id: "42300" name: "Ljubljana" departure: "2019-06-27T10:50:00.000+02:00" arrival: null type: "stopover" stop: type: "station" id: "42212" name: "Ljubljana Polje" departure: "2019-06-27T10:56:00.000+02:00" arrival: "2019-06-27T10:55:00.000+02:00" // … type: "stopover" stop: type: "station" id: "43304" name: "Maribor Tezno" departure: "2019-06-27T13:32:00.000+02:00" arrival: "2019-06-27T13:31:00.000+02:00" type: "stopover" stop: type: "station" id: "43400" name: "Maribor" departure: null arrival: "2019-06-27T13:35:00.000+02:00"
Contributing
If you found a bug or want to propose a feature, feel free to visit the issues page.