API wrapper for directlease.nl, returning all gas prices (euro95/98, diesel)
MongoDB / jimp / tesseract.js
- npm i
- Copy
.env.example
to.env
and fill it in. npm run dev
for development with hot reload ornpm run build
for building
Available here
directlease.nl has map with all gas stations, when you click on one, it fetches image with info about the selected gas station. This wrapper uses OCR (tessreact.js) and Image manipulation (jimp) to parse text from image and save it in the database.
OCR takes some time, so caching is introduced, every (specified) interval, a new image will be analyzed, otherwise, wrapper will return cached data from database.
Written in 2h so the code needs cleanup, but it works.
dutch-fuel-prices-api.postman_collection.json
{
"success": true,
"message": "Use getTankstationById to get the prices.",
"data": [
{
"id": 6770,
"cat": 1,
"lat": 51.747045,
"lng": 5.532179,
"name": "de Kock",
"city": "Oss",
"country": "NL"
},
{
"id": 4474,
"cat": 1,
"lat": 51.76444,
"lng": 5.545967,
"brand": "TinQ",
"city": "Oss",
"country": "NL"
}
]
}
{
"success": true,
"message": "Returned up-to-date data.",
"data": {
"_id": "a4399e28-119a-4dd2-a5a2-7244c6b452c4",
"city": "Oss",
"country": "NL",
"id": 4434,
"lat": 51.754676,
"lng": 5.525235,
"name": "Dr Saal v Zwanenbergsingel",
"prices": [
{
"fuelType": "euro95(e10)",
"price": 2.03,
"_id": "62f6f0ad3959ed1a827178c8"
},
{
"fuelType": "diesel(b7)",
"price": 1.9,
"_id": "62f6f0ad3959ed1a827178c9"
}
],
"createdAt": "2022-08-13T00:20:53.077Z",
"updatedAt": "2022-08-13T00:30:37.332Z",
"__v": 0
}
}