Skip to content

Commit

Permalink
Merge 4e64f51 into fbd9641
Browse files Browse the repository at this point in the history
  • Loading branch information
jens-maus committed Feb 17, 2017
2 parents fbd9641 + 4e64f51 commit 4055f1e
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 31 deletions.
51 changes: 34 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
[![travis-ci](http://img.shields.io/travis/kiliankoe/dvbjs.svg?style=flat)](https://travis-ci.org/kiliankoe/dvbjs)
[![Coverage Status](https://coveralls.io/repos/kiliankoe/dvbjs/badge.svg?branch=master&service=github)](https://coveralls.io/github/kiliankoe/dvbjs?branch=master)
[![npmversion](http://img.shields.io/npm/v/dvbjs.svg?style=flat)](https://www.npmjs.org/package/dvbjs)
[![Downloads](https://img.shields.io/npm/dm/dvbjs.svg)](https://www.npmjs.com/package/dvbjs)

[![NPM](https://nodei.co/npm/dvbjs.png?downloads=true)](https://nodei.co/npm/dvbjs/)

This is an unofficial node module, giving you a few options to query Dresden's public transport system for current bus- and tramstop data.

Expand Down Expand Up @@ -50,7 +53,7 @@ Monitor a single stop to see every bus or tram leaving this stop after the speci
Example:

```js
var stop = 65498388; // ID of the stop
var stop = 33000037; // ID of the stop
// var stop = 'Postplatz'; // or name of the stop (must be unambiguous)
var timeOffset = 0; // how many minutes in the future, 0 for now
var numResults = 2; // number of results
Expand All @@ -65,35 +68,49 @@ Output:
```js
[
{
"line": "4",
"direction": "Laubegast",
"platform": 1,
"arrivalTime": "2017-02-17T01:25:00.000Z",
"arrivalTimeRelative": 9,
"scheduledTime": "2017-02-17T01:25:00.000Z",
"scheduledTimeRelative": 9,
"line": "8",
"direction": "Südvorstadt",
"platform": {
"name": "3",
"type": "Platform"
},
"arrivalTime": "2017-02-17T22:22:00.000Z",
"arrivalTimeRelative": 0,
"scheduledTime": "2017-02-17T22:22:00.000Z",
"scheduledTimeRelative": 0,
"delayTime": 0,
"state": "InTime",
"mode": {
"title": "Straßenbahn",
"name": "tram",
"icon_url": "https://www.dvb.de/assets/img/trans-icon/transport-tram.svg"
},
"diva": {
"number": 11008,
"network": "voe"
}
},
{
"line": "2",
"direction": "Gorbitz",
"platform": 2,
"arrivalTime": "2017-02-17T01:25:00.000Z",
"arrivalTimeRelative": 9,
"scheduledTime": "2017-02-17T01:25:00.000Z",
"scheduledTimeRelative": 9,
"delayTime": 0,
"state": "InTime",
"line": "1",
"direction": "Bf. Mitte",
"platform": {
"name": "2",
"type": "Platform"
},
"arrivalTime": "2017-02-17T22:24:50.000Z",
"arrivalTimeRelative": 3,
"scheduledTime": "2017-02-17T22:23:00.000Z",
"scheduledTimeRelative": 1,
"delayTime": 2,
"state": "Delayed",
"mode": {
"title": "Straßenbahn",
"name": "tram",
"icon_url": "https://www.dvb.de/assets/img/trans-icon/transport-tram.svg"
},
"diva": {
"number": 11001,
"network": "voe"
}
}
]
Expand Down
19 changes: 9 additions & 10 deletions lib/monitor.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,25 +29,25 @@ function depatureMonitor(stopid, offset, amount) {
.then(function (data) {
// check status
if (data.Status &&
data.Status.Code == 'Ok' &&
data.Status.Code === 'Ok' &&
data.Departures) {

return data.Departures.map(function (d) {
var arrivalTime = d.RealTime ? d.RealTime.match(/\d+/)[0] : d.ScheduledTime.match(/\d+/)[0];
arrivalTime = new Date(1 * arrivalTime);
var scheduledTime = new Date(1 * d.ScheduledTime.match(/\d+/)[0]);
var arrivalTime = new Date(parseInt(d.RealTime ? d.RealTime.match(/\d+/)[0] : d.ScheduledTime.match(/\d+/)[0]));
var scheduledTime = new Date(parseInt(d.ScheduledTime.match(/\d+/)[0]));

return {
line: d.LineName,
direction: d.Direction,
platform: d.Platform ? parseInt(d.Platform.Name) : undefined,
platform: d.Platform ? { name: d.Platform.Name, type: d.Platform.Type } : undefined,
arrivalTime: arrivalTime,
arrivalTimeRelative: Math.round((arrivalTime - now) / 6e4),
arrivalTimeRelative: Math.round((arrivalTime - now) / 1000 / 60),
scheduledTime: scheduledTime,
scheduledTimeRelative: Math.round((scheduledTime - now) / 6e4),
delayTime: Math.round((arrivalTime - scheduledTime) / 6e4),
scheduledTimeRelative: Math.round((scheduledTime - now) / 1000 / 60),
delayTime: Math.round((arrivalTime - scheduledTime) / 1000 / 60),
state: d.State ? d.State : 'Unknown',
mode: utils.parseMot(d.Mot)
mode: utils.parseMot(d.Mot),
diva: d.Diva ? { number: parseInt(d.Diva.Number), network: d.Diva.Network } : undefined
};
})
}
Expand All @@ -60,7 +60,6 @@ var monitor = function monitor(stop, offset, amount, callback) {
if (typeof(stop) === 'string') {
stopPromise = find(utils.stripSpaces(stop))
.then(function (stops) {
console.log(stops);
if (!stops || stops.length == 0)
throw new Error('no stops found');
return stops[0].id;
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "dvbjs",
"version": "4.3.0",
"version": "4.3.1",
"description": "query Dresden's public transport system for current bus- and tramstop data",
"main": "index",
"scripts": {
Expand Down
7 changes: 4 additions & 3 deletions test/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,16 +57,17 @@ function mockRequest(filename) {
describe('dvb.monitor', function () {

function assertTransport(transport) {
assert(transport.line);
assert(transport.direction);
assert.strictEqual('number', typeof transport.platform);
assert.strictEqual('string', typeof transport.line);
assert.strictEqual('string', typeof transport.direction);
assert(transport.platform);
assert.strictEqual('number', typeof transport.arrivalTimeRelative);
assert.strictEqual('object', typeof transport.arrivalTime);
assert.strictEqual('number', typeof transport.scheduledTimeRelative);
assert.strictEqual('object', typeof transport.scheduledTime);
assert.strictEqual('number', typeof transport.delayTime);
assert(transport.state);
assert.strictEqual('object', typeof transport.mode);
assert(transport.diva);
}

describe('dvb.monitor "33000037" (Postplatz)', function () {
Expand Down

0 comments on commit 4055f1e

Please sign in to comment.