added all files to project

This commit is contained in:
2022-03-10 10:36:59 +01:00
parent 09dd957b33
commit 46a936d7de
25351 changed files with 3883356 additions and 0 deletions
@@ -0,0 +1,66 @@
'use strict'
const variant = require('./variants')
const tariffs = {
B: 'Berlin'
, P: 'Potsdam'
, S: 'Brandenburg (Havel)'
, C: 'Cottbus'
, G: 'urban area'
, V: 'Frankfurt (Oder)'
, L: 'rural area'
, R: 'rural area'
, M: 'Szczecin'
}
const R = []
R[3] = '25-35km'; R[4] = '35-45km'; R[5] = '45-55km'; R[6] = '55-65km';
R[7] = '65-75km'; R[8] = '75-85km'; R[9] = '85-95km';
// todo: G2
// todo: RA
const coverages = {
B: ['short trip', 'AB', 'BC', 'ABC']
, S: [null, 'AB', 'BC', 'ABC']
, G: [null, 'urban area']
, L: [null, '2 zones', '3 zones', '4 zones']
, R: R
, M: ['urban area']
}
coverages.P = coverages.B
coverages.C = coverages.S
coverages.V = coverages.S
const parse = (t) => {
const ticket = {
name: t.name
, price: (t.price || t.prc) / 100
, tariff: null
, coverage: null
}
if (!t.shpCtx) return ticket
let code
try {code = JSON.parse(t.shpCtx).TLS}
catch (e) {return ticket}
if (!code) return ticket
variant(ticket, code.slice(2))
const tariff = code[0]
if (tariff in tariffs) ticket.tariff = tariffs[tariff]
const coverage = parseInt(code[1])
if (coverages[tariff] && (coverage in coverages[tariff])) {
ticket.coverage = coverages[tariff][coverage] || null
}
if (coverage === 0 && tariff !== 'M') ticket.shortTrip = true
return ticket
}
module.exports = parse
@@ -0,0 +1,5 @@
Copyright (c) 2017, Jannis R
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
@@ -0,0 +1,66 @@
{
"_from": "vbb-parse-ticket@^0.2.1",
"_id": "vbb-parse-ticket@0.2.1",
"_inBundle": false,
"_integrity": "sha512-Di1/AOrKGrGTBfdrZZXSCmq73E/RVuGys12BAFraHu5Swwj/TTXfvV8FrnHifCHEMoZIfLmH4avnF7xVa+46Sw==",
"_location": "/vbb-parse-ticket",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
"raw": "vbb-parse-ticket@^0.2.1",
"name": "vbb-parse-ticket",
"escapedName": "vbb-parse-ticket",
"rawSpec": "^0.2.1",
"saveSpec": null,
"fetchSpec": "^0.2.1"
},
"_requiredBy": [
"/hafas-client"
],
"_resolved": "https://registry.npmjs.org/vbb-parse-ticket/-/vbb-parse-ticket-0.2.1.tgz",
"_shasum": "e3e5eaf671fdb25cfbabea52934681fe6c3aff30",
"_spec": "vbb-parse-ticket@^0.2.1",
"_where": "/home/pi/MagicMirror/modules/MMM-PublicTransportHafas/node_modules/hafas-client",
"author": {
"name": "Jannis R",
"email": "mail@jannisr.de"
},
"bugs": {
"url": "https://github.com/derhuerst/vbb-parse-ticket/issues"
},
"bundleDependencies": false,
"deprecated": false,
"description": "Parse ticket information from the VBB HAFAS API.",
"devDependencies": {
"tap-min": "^1.2.2",
"tape": "^4.8.0"
},
"engines": {
"node": ">=6"
},
"files": [
"index.js",
"variants.js"
],
"homepage": "https://github.com/derhuerst/vbb-parse-ticket",
"keywords": [
"vbb",
"parse",
"ticket",
"hafas",
"api"
],
"license": "ISC",
"main": "index.js",
"name": "vbb-parse-ticket",
"repository": {
"type": "git",
"url": "git+https://github.com/derhuerst/vbb-parse-ticket.git"
},
"scripts": {
"prepublishOnly": "npm test",
"test": "tape test.js | tap-min"
},
"version": "0.2.1"
}
@@ -0,0 +1,45 @@
# vbb-parse-ticket
**Parse ticket information from the VBB HAFAS API.**
```js
{
name: 'foo'
, price: 321
, shpCtx: '{"TLS": "B3TK"}'
}
```
will be parsed to
```js
{
name: 'foo'
, price: 3.21
, amount: 1
, fullDay: true
, group: true
, tariff: 'Berlin'
, coverage: 'ABC'
, variant: '1 day, group'
}
```
[![npm version](https://img.shields.io/npm/v/vbb-parse-ticket.svg)](https://www.npmjs.com/package/vbb-parse-ticket)
[![build status](https://img.shields.io/travis/derhuerst/vbb-parse-ticket.svg)](https://travis-ci.org/derhuerst/vbb-parse-ticket)
[![dependency status](https://img.shields.io/david/derhuerst/vbb-parse-ticket.svg)](https://david-dm.org/derhuerst/vbb-parse-ticket)
[![dev dependency status](https://img.shields.io/david/dev/derhuerst/vbb-parse-ticket.svg)](https://david-dm.org/derhuerst/vbb-parse-ticket#info=devDependencies)
![ISC-licensed](https://img.shields.io/github/license/derhuerst/vbb-parse-ticket.svg)
[![gitter channel](https://badges.gitter.im/derhuerst/vbb-rest.svg)](https://gitter.im/derhuerst/vbb-rest)
## Installing
```shell
npm install vbb-parse-ticket
```
## Contributing
If you **have a question**, **found a bug** or want to **propose a feature**, have a look at [the issues page](https://github.com/derhuerst/vbb-parse-ticket/issues).
@@ -0,0 +1,35 @@
'use strict'
const names = {
'': 'adult'
, E: 'reduced'
, T: '1 day, adult'
, F: 'bike'
, M: '4x adult'
, ME: '4x reduced'
, TE: '1 day, reduced'
, TF: '1 day, bike'
, TK: '1 day, group'
, SG: '1 day, group reduced'
}
const props = {
'': {amount: 1}
, E: {amount: 1, reduced: true}
, T: {amount: 1, fullDay: true}
, F: {amount: 1, bike: true}
, M: {amount: 4}
, ME: {amount: 4, reduced: true}
, TE: {amount: 1, reduced: true, fullDay: true}
, TF: {amount: 1, bike: true, fullDay: true}
, TK: {amount: 1, group: true, fullDay: true}
, SG: {amount: 1, reduced: true, group: true, fullDay: true}
}
const parse = (ticket, code) => {
if (code in names) ticket.variant = names[code]
if (code in props) Object.assign(ticket, props[code])
return ticket
}
module.exports = parse