mirror of
				https://github.com/public-transport/db-vendo-client.git
				synced 2025-10-31 16:16:32 +02:00 
			
		
		
		
	add Irish Rail profile ✨
This commit is contained in:
		
							parent
							
								
									de86391dcd
								
							
						
					
					
						commit
						8ed218f4d6
					
				
					 5 changed files with 128 additions and 0 deletions
				
			
		
							
								
								
									
										35
									
								
								p/irish-rail/example.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								p/irish-rail/example.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,35 @@ | ||||||
|  | 'use strict' | ||||||
|  | 
 | ||||||
|  | const createClient = require('../..') | ||||||
|  | const irishProfile = require('.') | ||||||
|  | 
 | ||||||
|  | const client = createClient(irishProfile) | ||||||
|  | 
 | ||||||
|  | // from Dublin to Belfast Central
 | ||||||
|  | client.journeys('9909002', '9990840', {results: 1}) | ||||||
|  | // .then(({journeys}) => {
 | ||||||
|  | // 	const leg = journeys[0].legs[0]
 | ||||||
|  | // 	return client.trip(leg.tripId, leg.line && leg.line.name)
 | ||||||
|  | // })
 | ||||||
|  | 
 | ||||||
|  | // client.departures('9909002', {duration: 5})
 | ||||||
|  | // client.arrivals('9909002', {duration: 10, linesOfStops: true})
 | ||||||
|  | // client.locations('Dublin', {results: 2})
 | ||||||
|  | // client.locations('Hochschule Dublin', {poi: true, addressses: false, fuzzy: false})
 | ||||||
|  | // client.stop('9909002') // Dublin
 | ||||||
|  | // client.nearby({
 | ||||||
|  | // 	type: 'location',
 | ||||||
|  | // 	latitude: 53.353,
 | ||||||
|  | // 	longitude: -6.247
 | ||||||
|  | // }, {distance: 200})
 | ||||||
|  | // client.radar({
 | ||||||
|  | // 	north: 53.35,
 | ||||||
|  | // 	west: -6.245,
 | ||||||
|  | // 	south: 53.34,
 | ||||||
|  | // 	east: -6.244
 | ||||||
|  | // }, {results: 10})
 | ||||||
|  | 
 | ||||||
|  | .then(data => { | ||||||
|  | 	console.log(require('util').inspect(data, { depth: null })) | ||||||
|  | }) | ||||||
|  | .catch(console.error) | ||||||
							
								
								
									
										36
									
								
								p/irish-rail/index.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								p/irish-rail/index.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,36 @@ | ||||||
|  | 'use strict' | ||||||
|  | 
 | ||||||
|  | const products = require('./products') | ||||||
|  | 
 | ||||||
|  | const transformReqBody = (ctx, body) => { | ||||||
|  | 	body.client = { | ||||||
|  | 		type: 'IPA', | ||||||
|  | 		id: 'IRISHRAIL', | ||||||
|  | 		v: '4000100', | ||||||
|  | 		name: 'IrishRailPROD-APPSTORE', | ||||||
|  | 		os: 'iOS 12.4.8', | ||||||
|  | 	} | ||||||
|  | 	body.ver = '1.18' | ||||||
|  | 
 | ||||||
|  | 	body.auth = {type: 'AID', aid: 'P9bplgVCGnozdgQE'} | ||||||
|  | 	body.lang = 'ga' | ||||||
|  | 
 | ||||||
|  | 	return body | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | const irishRailProfile = { | ||||||
|  | 	locale: 'en-IE', | ||||||
|  | 	timezone: 'Europe/Dublin', | ||||||
|  | 	endpoint: 'https://journeyplanner.irishrail.ie/bin/mgate.exe', | ||||||
|  | 	transformReqBody, | ||||||
|  | 
 | ||||||
|  | 	salt: Buffer.from('i5s7m3q9z6b4k1c2', 'utf8'), | ||||||
|  | 	addMicMac: true, | ||||||
|  | 
 | ||||||
|  | 	products: products, | ||||||
|  | 
 | ||||||
|  | 	trip: true, | ||||||
|  | 	radar: true, | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | module.exports = irishRailProfile; | ||||||
							
								
								
									
										38
									
								
								p/irish-rail/products.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								p/irish-rail/products.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,38 @@ | ||||||
|  | 'use strict' | ||||||
|  | 
 | ||||||
|  | module.exports = [ | ||||||
|  | 	{ | ||||||
|  | 		id: 'national-train', | ||||||
|  | 		mode: 'train', | ||||||
|  | 		bitmasks: [2], | ||||||
|  | 		name: 'InterCity', | ||||||
|  | 		short: 'IC', | ||||||
|  | 		default: true | ||||||
|  | 	}, | ||||||
|  | 	// todo: 4
 | ||||||
|  | 	{ | ||||||
|  | 		id: 'local-train', | ||||||
|  | 		mode: 'train', | ||||||
|  | 		bitmasks: [8], | ||||||
|  | 		name: 'Commuter', | ||||||
|  | 		short: 'Commuter', | ||||||
|  | 		default: true | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		id: 'suburban', | ||||||
|  | 		mode: 'train', | ||||||
|  | 		bitmasks: [16], | ||||||
|  | 		name: 'Dublin Area Rapid Transit', | ||||||
|  | 		short: 'DART', | ||||||
|  | 		default: true | ||||||
|  | 	}, | ||||||
|  | 	// todo: 32
 | ||||||
|  | 	{ | ||||||
|  | 		id: 'luas', | ||||||
|  | 		mode: 'train', | ||||||
|  | 		bitmasks: [64], | ||||||
|  | 		name: 'LUAS Tram', | ||||||
|  | 		short: 'LUAS', | ||||||
|  | 		default: true | ||||||
|  | 	} | ||||||
|  | ] | ||||||
							
								
								
									
										18
									
								
								p/irish-rail/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								p/irish-rail/readme.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,18 @@ | ||||||
|  | # Irish Rail profile for `hafas-client` | ||||||
|  | 
 | ||||||
|  | The [*Iarnród Éireann* (Irish Rail)](https://en.wikipedia.org/wiki/Iarnród_Éireann) is the national railway company of Ireland. This profile adds *Iarnród Éireann*-specific customizations to `hafas-client`. | ||||||
|  | 
 | ||||||
|  | ## Usage | ||||||
|  | 
 | ||||||
|  | ```js | ||||||
|  | const createClient = require('hafas-client') | ||||||
|  | const irishProfile = require('hafas-client/p/irish-rail') | ||||||
|  | 
 | ||||||
|  | // create a client with Irish Rail profile | ||||||
|  | const client = createClient(irishProfile, 'my-awesome-program') | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ## Customisations | ||||||
|  | 
 | ||||||
|  | - parses *Irish Rail*-specific products (such as *LUAS* or *DART*) | ||||||
|  | @ -208,6 +208,7 @@ HAFAS endpoint | wrapper library | docs | example code | source code | ||||||
| [Deutsche Bahn (DB)](https://en.wikipedia.org/wiki/Deutsche_Bahn) | [`db-hafas`](https://github.com/public-transport/db-hafas) | [docs](p/db/readme.md) | [example code](p/db/example.js) | [src](p/db/index.js) | [Deutsche Bahn (DB)](https://en.wikipedia.org/wiki/Deutsche_Bahn) | [`db-hafas`](https://github.com/public-transport/db-hafas) | [docs](p/db/readme.md) | [example code](p/db/example.js) | [src](p/db/index.js) | ||||||
| [Polskie Koleje Państwowe (PKP)](https://en.wikipedia.org/wiki/Polish_State_Railways) | [`pkp-hafas`](https://github.com/juliuste/pkp-hafas) | [docs](p/pkp/readme.md) | [example code](p/pkp/example.js) | [src](p/pkp/index.js) | [Polskie Koleje Państwowe (PKP)](https://en.wikipedia.org/wiki/Polish_State_Railways) | [`pkp-hafas`](https://github.com/juliuste/pkp-hafas) | [docs](p/pkp/readme.md) | [example code](p/pkp/example.js) | [src](p/pkp/index.js) | ||||||
| [Belgian National Railways (SNCB/NMBS)](https://en.wikipedia.org/wiki/National_Railway_Company_of_Belgium) | - | [docs](p/sncb/readme.md) | [example code](p/sncb/example.js) | [src](p/sncb/index.js) | [Belgian National Railways (SNCB/NMBS)](https://en.wikipedia.org/wiki/National_Railway_Company_of_Belgium) | - | [docs](p/sncb/readme.md) | [example code](p/sncb/example.js) | [src](p/sncb/index.js) | ||||||
|  | [*Iarnród Éireann* (Irish Rail)](https://en.wikipedia.org/wiki/Iarnród_Éireann) | - | [docs](p/irish-rail/readme.md) | [example code](p/irish-rail/example.js) | [src](p/irish-rail/index.js) | ||||||
| [Berlin & Brandenburg public transport (VBB)](https://en.wikipedia.org/wiki/Verkehrsverbund_Berlin-Brandenburg) | [`vbb-hafas`](https://github.com/public-transport/vbb-hafas) | [docs](p/vbb/readme.md) | [example code](p/vbb/example.js) | [src](p/vbb/index.js) | [Berlin & Brandenburg public transport (VBB)](https://en.wikipedia.org/wiki/Verkehrsverbund_Berlin-Brandenburg) | [`vbb-hafas`](https://github.com/public-transport/vbb-hafas) | [docs](p/vbb/readme.md) | [example code](p/vbb/example.js) | [src](p/vbb/index.js) | ||||||
| [Berlin public transport (BVG)](https://en.wikipedia.org/wiki/Berliner_Verkehrsbetriebe) | [`bvg-hafas`](https://github.com/public-transport/bvg-hafas) | [docs](p/bvg/readme.md) | [example code](p/bvg/example.js) | [src](p/bvg/index.js) | [Berlin public transport (BVG)](https://en.wikipedia.org/wiki/Berliner_Verkehrsbetriebe) | [`bvg-hafas`](https://github.com/public-transport/bvg-hafas) | [docs](p/bvg/readme.md) | [example code](p/bvg/example.js) | [src](p/bvg/index.js) | ||||||
| [Österreichische Bundesbahnen (ÖBB)](https://en.wikipedia.org/wiki/Austrian_Federal_Railways) | [`oebb-hafas`](https://github.com/juliuste/oebb-hafas) | [docs](p/oebb/readme.md) | [example code](p/oebb/example.js) | [src](p/oebb/index.js) | [Österreichische Bundesbahnen (ÖBB)](https://en.wikipedia.org/wiki/Austrian_Federal_Railways) | [`oebb-hafas`](https://github.com/juliuste/oebb-hafas) | [docs](p/oebb/readme.md) | [example code](p/oebb/example.js) | [src](p/oebb/index.js) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue