Compare commits
No commits in common. "7badd97610f9b022eea1c10389c3b9effd6f05ec" and "dd008d7ee23d0fee38dd6d9b4481b135a7ea7651" have entirely different histories.
7badd97610
...
dd008d7ee2
|
@ -1,6 +1,7 @@
|
||||||
const unzip = require('unzip-stream');
|
const unzip = require('unzip-stream');
|
||||||
const csv = require('csv-parse');
|
const csv = require('csv-parse');
|
||||||
const axios = require('axios');
|
const request = require('request');
|
||||||
|
const requestp = require('request-promise-native');
|
||||||
|
|
||||||
const overpassEndpoint = 'https://lz4.overpass-api.de/api/interpreter';
|
const overpassEndpoint = 'https://lz4.overpass-api.de/api/interpreter';
|
||||||
|
|
||||||
|
@ -11,10 +12,10 @@ const overpassEndpoint = 'https://lz4.overpass-api.de/api/interpreter';
|
||||||
* @param query Query in Overpass QL.
|
* @param query Query in Overpass QL.
|
||||||
* @return Results as provided by the endpoint.
|
* @return Results as provided by the endpoint.
|
||||||
*/
|
*/
|
||||||
const queryOverpass = query => axios.post(
|
const queryOverpass = query => requestp.post(
|
||||||
overpassEndpoint,
|
overpassEndpoint,
|
||||||
'data=' + query
|
{form: 'data=' + query}
|
||||||
).then(res => res.data);
|
);
|
||||||
|
|
||||||
exports.queryOverpass = queryOverpass;
|
exports.queryOverpass = queryOverpass;
|
||||||
|
|
||||||
|
@ -76,9 +77,8 @@ const tamRealtimeEndpoint = 'http://data.montpellier3m.fr/node/10732/download';
|
||||||
*/
|
*/
|
||||||
const fetchTamRealtime = (callback) =>
|
const fetchTamRealtime = (callback) =>
|
||||||
{
|
{
|
||||||
axios.get(tamRealtimeEndpoint, {
|
const csvStream = request(tamRealtimeEndpoint);
|
||||||
responseType: 'stream'
|
processTamPassingStream(csvStream, callback);
|
||||||
}).then(res => processTamPassingStream(res.data, callback));
|
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.fetchTamRealtime = fetchTamRealtime;
|
exports.fetchTamRealtime = fetchTamRealtime;
|
||||||
|
@ -96,11 +96,7 @@ const tamTheoreticalFileName = 'offre_du_jour.csv';
|
||||||
*/
|
*/
|
||||||
const fetchTamTheoretical = (callback) =>
|
const fetchTamTheoretical = (callback) =>
|
||||||
{
|
{
|
||||||
axios.get(tamTheoreticalEndpoint, {
|
const fileStream = request(tamTheoreticalEndpoint).pipe(unzip.Parse());
|
||||||
responseType: 'stream'
|
|
||||||
}).then(res =>
|
|
||||||
{
|
|
||||||
const fileStream = res.data.pipe(unzip.Parse());
|
|
||||||
|
|
||||||
fileStream.on('entry', entry =>
|
fileStream.on('entry', entry =>
|
||||||
{
|
{
|
||||||
|
@ -114,7 +110,6 @@ const fetchTamTheoretical = (callback) =>
|
||||||
});
|
});
|
||||||
|
|
||||||
fileStream.on('error', err => callback(err));
|
fileStream.on('error', err => callback(err));
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.fetchTamTheoretical = fetchTamTheoretical;
|
exports.fetchTamTheoretical = fetchTamTheoretical;
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
const geolib = require('geolib');
|
||||||
|
|
||||||
const {choosePlural, joinSentence} = require('../util');
|
const {choosePlural, joinSentence} = require('../util');
|
||||||
const {queryOverpass, fetchTamTheoretical} = require('./endpoints');
|
const {queryOverpass, fetchTamTheoretical} = require('./endpoints');
|
||||||
|
|
||||||
|
@ -157,7 +159,7 @@ out body qt;
|
||||||
const associations = await fetchStopsRefAssociations();
|
const associations = await fetchStopsRefAssociations();
|
||||||
|
|
||||||
// List of retrieved objects
|
// List of retrieved objects
|
||||||
const elementsList = rawData.elements;
|
const elementsList = JSON.parse(rawData).elements;
|
||||||
|
|
||||||
// List of retrieved lines
|
// List of retrieved lines
|
||||||
const routeMasters = elementsList.filter(elt =>
|
const routeMasters = elementsList.filter(elt =>
|
||||||
|
@ -395,7 +397,7 @@ ${routeDescription} is one-way and cannot be used in reverse.`);
|
||||||
path.indexOf(stops[stopIndex + 1] + 1),
|
path.indexOf(stops[stopIndex + 1] + 1),
|
||||||
).map(id => ({
|
).map(id => ({
|
||||||
lat: elements[id].lat,
|
lat: elements[id].lat,
|
||||||
lon: elements[id].lon
|
lon: elements[id].lon,
|
||||||
})));
|
})));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
const axios = require('axios');
|
const request = require('request');
|
||||||
const csv = require('csv-parse');
|
const csv = require('csv-parse');
|
||||||
|
|
||||||
const network = require('./network');
|
const network = require('./network');
|
||||||
|
@ -8,16 +8,12 @@ const sortByFirstKey = (a, b) => a[0] - b[0];
|
||||||
|
|
||||||
const fetchRealtime = () => new Promise((res, rej) =>
|
const fetchRealtime = () => new Promise((res, rej) =>
|
||||||
{
|
{
|
||||||
const stream = axios.get(TAM_REALTIME, {
|
|
||||||
responseType: 'stream'
|
|
||||||
}).then(stream =>
|
|
||||||
{
|
|
||||||
const parser = csv({
|
const parser = csv({
|
||||||
delimiter: ';',
|
delimiter: ';',
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const stream = request(TAM_REALTIME).pipe(parser);
|
||||||
const courses = {};
|
const courses = {};
|
||||||
stream.pipe(parser);
|
|
||||||
|
|
||||||
stream.on('readable', () =>
|
stream.on('readable', () =>
|
||||||
{
|
{
|
||||||
|
@ -53,7 +49,6 @@ const fetchRealtime = () => new Promise((res, rej) =>
|
||||||
|
|
||||||
stream.on('end', () => res(courses));
|
stream.on('end', () => res(courses));
|
||||||
stream.on('error', err => rej(err));
|
stream.on('error', err => rej(err));
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const updateVehicles = async (lines, vehicles) =>
|
const updateVehicles = async (lines, vehicles) =>
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -12,18 +12,19 @@
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^0.19.2",
|
|
||||||
"color": "^3.1.2",
|
"color": "^3.1.2",
|
||||||
"csv-parse": "^4.8.3",
|
"csv-parse": "^4.8.3",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
"geolib": "^3.2.1",
|
"geolib": "^3.2.1",
|
||||||
"leaflet": "^1.6.0",
|
"leaflet": "^1.6.0",
|
||||||
"ol": "^6.1.1",
|
"ol": "^6.1.1",
|
||||||
|
"parcel-bundler": "^1.12.4",
|
||||||
|
"request": "^2.88.0",
|
||||||
|
"request-promise-native": "^1.0.8",
|
||||||
"unzip-stream": "^0.3.0"
|
"unzip-stream": "^0.3.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"eslint": "^6.8.0",
|
"eslint": "^6.8.0",
|
||||||
"nodemon": "^2.0.2",
|
"nodemon": "^2.0.2"
|
||||||
"parcel-bundler": "^1.12.4"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue