Compare commits
2 Commits
dd008d7ee2
...
7badd97610
Author | SHA1 | Date |
---|---|---|
Mattéo Delabre | 7badd97610 | |
Mattéo Delabre | 3429227114 |
|
@ -1,7 +1,6 @@
|
||||||
const unzip = require('unzip-stream');
|
const unzip = require('unzip-stream');
|
||||||
const csv = require('csv-parse');
|
const csv = require('csv-parse');
|
||||||
const request = require('request');
|
const axios = require('axios');
|
||||||
const requestp = require('request-promise-native');
|
|
||||||
|
|
||||||
const overpassEndpoint = 'https://lz4.overpass-api.de/api/interpreter';
|
const overpassEndpoint = 'https://lz4.overpass-api.de/api/interpreter';
|
||||||
|
|
||||||
|
@ -12,10 +11,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 => requestp.post(
|
const queryOverpass = query => axios.post(
|
||||||
overpassEndpoint,
|
overpassEndpoint,
|
||||||
{form: 'data=' + query}
|
'data=' + query
|
||||||
);
|
).then(res => res.data);
|
||||||
|
|
||||||
exports.queryOverpass = queryOverpass;
|
exports.queryOverpass = queryOverpass;
|
||||||
|
|
||||||
|
@ -77,8 +76,9 @@ const tamRealtimeEndpoint = 'http://data.montpellier3m.fr/node/10732/download';
|
||||||
*/
|
*/
|
||||||
const fetchTamRealtime = (callback) =>
|
const fetchTamRealtime = (callback) =>
|
||||||
{
|
{
|
||||||
const csvStream = request(tamRealtimeEndpoint);
|
axios.get(tamRealtimeEndpoint, {
|
||||||
processTamPassingStream(csvStream, callback);
|
responseType: 'stream'
|
||||||
|
}).then(res => processTamPassingStream(res.data, callback));
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.fetchTamRealtime = fetchTamRealtime;
|
exports.fetchTamRealtime = fetchTamRealtime;
|
||||||
|
@ -96,7 +96,11 @@ const tamTheoreticalFileName = 'offre_du_jour.csv';
|
||||||
*/
|
*/
|
||||||
const fetchTamTheoretical = (callback) =>
|
const fetchTamTheoretical = (callback) =>
|
||||||
{
|
{
|
||||||
const fileStream = request(tamTheoreticalEndpoint).pipe(unzip.Parse());
|
axios.get(tamTheoreticalEndpoint, {
|
||||||
|
responseType: 'stream'
|
||||||
|
}).then(res =>
|
||||||
|
{
|
||||||
|
const fileStream = res.data.pipe(unzip.Parse());
|
||||||
|
|
||||||
fileStream.on('entry', entry =>
|
fileStream.on('entry', entry =>
|
||||||
{
|
{
|
||||||
|
@ -110,6 +114,7 @@ const fetchTamTheoretical = (callback) =>
|
||||||
});
|
});
|
||||||
|
|
||||||
fileStream.on('error', err => callback(err));
|
fileStream.on('error', err => callback(err));
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.fetchTamTheoretical = fetchTamTheoretical;
|
exports.fetchTamTheoretical = fetchTamTheoretical;
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
const geolib = require('geolib');
|
|
||||||
|
|
||||||
const {choosePlural, joinSentence} = require('../util');
|
const {choosePlural, joinSentence} = require('../util');
|
||||||
const {queryOverpass, fetchTamTheoretical} = require('./endpoints');
|
const {queryOverpass, fetchTamTheoretical} = require('./endpoints');
|
||||||
|
|
||||||
|
@ -159,7 +157,7 @@ out body qt;
|
||||||
const associations = await fetchStopsRefAssociations();
|
const associations = await fetchStopsRefAssociations();
|
||||||
|
|
||||||
// List of retrieved objects
|
// List of retrieved objects
|
||||||
const elementsList = JSON.parse(rawData).elements;
|
const elementsList = rawData.elements;
|
||||||
|
|
||||||
// List of retrieved lines
|
// List of retrieved lines
|
||||||
const routeMasters = elementsList.filter(elt =>
|
const routeMasters = elementsList.filter(elt =>
|
||||||
|
@ -397,7 +395,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 request = require('request');
|
const axios = require('axios');
|
||||||
const csv = require('csv-parse');
|
const csv = require('csv-parse');
|
||||||
|
|
||||||
const network = require('./network');
|
const network = require('./network');
|
||||||
|
@ -7,13 +7,17 @@ const {TAM_REALTIME} = require('./endpoints');
|
||||||
const sortByFirstKey = (a, b) => a[0] - b[0];
|
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', () =>
|
||||||
{
|
{
|
||||||
|
@ -50,6 +54,7 @@ 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,19 +12,18 @@
|
||||||
"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