Merge branch 'dev' into main

This commit is contained in:
Alexis
2023-04-27 12:15:00 +02:00
3 changed files with 50 additions and 17 deletions

View File

@@ -1,25 +1,29 @@
const express = require('express'); const express = require('express')
const app = express(); const cors = require('cors')
const PORT = 3000;
const fs = require('fs'); const app = express()
const path = require('path'); app.use(cors())
const GeoJsonGeometriesLookup = require("geojson-geometries-lookup");
const lookupTable = require('./rep-lookup'); const PORT = 3000
app.use(express.static(path.join(__dirname, 'public'))); const fs = require('fs')
const path = require('path')
const GeoJsonGeometriesLookup = require("geojson-geometries-lookup")
const lookupTable = require('./rep-lookup')
app.use(express.static(path.join(__dirname, 'public')))
app.use('/rep', async (req, res) => { app.use('/rep', async (req, res) => {
const lat = parseFloat(req.query.lat); const lat = parseFloat(req.query.lat)
const lon = parseFloat(req.query.lon); const lon = parseFloat(req.query.lon)
if (!lat || !lon) return if (!lat || !lon) return
const f = fs.readFileSync(path.join(__dirname, 'public/circonscriptions-legislatives.json'), 'utf-8'); const f = fs.readFileSync(path.join(__dirname, 'public/circonscriptions-legislatives.json'), 'utf-8')
const data = JSON.parse(f) const data = JSON.parse(f)
gl = new GeoJsonGeometriesLookup(data); gl = new GeoJsonGeometriesLookup(data)
const pos = { const pos = {
type: "Point", type: "Point",
@@ -28,9 +32,16 @@ app.use('/rep', async (req, res) => {
const code = gl.getContainers(pos).features[0]?.properties["REF"] const code = gl.getContainers(pos).features[0]?.properties["REF"]
const repFile = fs.readFileSync(path.join(__dirname, `public/reps/${lookupTable[code]}.json`), 'utf-8'); if (!code) {
res.json({
"message": "The requested data couldn't be found. Maybe it was moved or the data isn't generated properly."
}).status(404).end();
return
}
res.end(repFile); const repFile = fs.readFileSync(path.join(__dirname, `public/reps/${lookupTable[code]}.json`), 'utf-8')
res.end(repFile)
/** /**
* GENERATE INITIAL DATA * GENERATE INITIAL DATA
@@ -40,10 +51,10 @@ app.use('/rep', async (req, res) => {
// const output = {} // const output = {}
// for (let i = 500; i < lookupTable.length; i++) { // for (let i = 500; i < lookupTable.length; i++) {
// const repId = lookupTable[i]; // const repId = lookupTable[i]
// console.log(repId) // console.log(repId)
// const response = await fetch(`https://www.assemblee-nationale.fr/dyn/deputes/${repId}`); // const response = await fetch(`https://www.assemblee-nationale.fr/dyn/deputes/${repId}`)
// const body = await response.text() // const body = await response.text()
// const depRegex = new RegExp(/(data-content=\"\/dyn\/carte\/departement\/)([A-Za-z0-9]{2,})/g) // const depRegex = new RegExp(/(data-content=\"\/dyn\/carte\/departement\/)([A-Za-z0-9]{2,})/g)
@@ -69,7 +80,7 @@ app.use('/rep', async (req, res) => {
// output[`${rep.departement}-${rep.circo}`] = repId // output[`${rep.departement}-${rep.circo}`] = repId
// } // }
// res.json(output); // res.json(output)
}) })
app.listen(PORT, () => console.log(`Server listening on port: ${PORT}`)); app.listen(PORT, () => console.log(`Server listening on port: ${PORT}`));

21
package-lock.json generated
View File

@@ -6,6 +6,7 @@
"": { "": {
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"cors": "^2.8.5",
"express": "^4.18.2", "express": "^4.18.2",
"geojson-geometries-lookup": "^0.5.0" "geojson-geometries-lookup": "^0.5.0"
} }
@@ -183,6 +184,18 @@
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
}, },
"node_modules/cors": {
"version": "2.8.5",
"resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
"integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
"dependencies": {
"object-assign": "^4",
"vary": "^1"
},
"engines": {
"node": ">= 0.10"
}
},
"node_modules/debug": { "node_modules/debug": {
"version": "2.6.9", "version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -473,6 +486,14 @@
"node": ">= 0.6" "node": ">= 0.6"
} }
}, },
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/object-inspect": { "node_modules/object-inspect": {
"version": "1.12.3", "version": "1.12.3",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",

View File

@@ -3,6 +3,7 @@
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"cors": "^2.8.5",
"express": "^4.18.2", "express": "^4.18.2",
"geojson-geometries-lookup": "^0.5.0" "geojson-geometries-lookup": "^0.5.0"
}, },