import fs from "fs" import {OH} from "../../UI/OpeningHours/OpeningHours"; const cashpunten = JSON.parse(fs.readFileSync("/home/pietervdvn/Downloads/cash_punten.json", "utf8")).data const features: any[] = [] const weekdays = [ "MO", "TU", "WE", "TH", "FR", "SA", "SU" ] for (const atm of cashpunten) { const properties = { "amenity": "atm", "addr:street": atm.adr_street, "addr:housenumber": atm.adr_street_number, "phone": atm.phone_number, "operator": "Batopin", network: "CASH", fee: "no", "speech_output": "yes", "brand": "CASH", website: "https://batopin.be", "source": "https://batopin.be", "brand:wikidata": "Q112875867", "operator:wikidata": "Q97142699", "currency:EUR": "yes" } features.push({ geometry: {type: "Point", coordinates: [atm.adr_longitude, atm.adr_latitude]}, properties: { tags: properties } }) switch (atm.accessibility) { case "Green": properties["wheelchair"] = "yes"; break; case "Orange": properties["wheelchair"] = "limited"; break; case "Red": properties["wheelchair"] = "no"; break; default: break; } delete atm.accessibility if (atm.deposit_cash) { properties["cash_in"] = atm.deposit_cash === "1" ? "yes" : "no" delete atm.deposit_cash } if (!weekdays.some(wd => atm.regular_hours[wd] !== "00:00-00:00")) { properties["opening_hours"] = "24/7" delete atm.regular_hours } else { const rules = weekdays.filter(wd => atm.regular_hours[wd] !== undefined).map(wd => wd[0] + wd.toLowerCase()[1] + " " + atm.regular_hours[wd]).join(";") properties["opening_hours"] = OH.ToString(OH.MergeTimes(OH.Parse(rules))) delete atm.regular_hours } delete atm.special_hours // Only one data point has this delete atm.location_language delete atm.location_name delete atm.shop_code delete atm.id delete atm.adr_longitude delete atm.adr_latitude delete atm.adr_street_number delete atm.adr_street delete atm.adr_zipcode delete atm.adr_city delete atm.adr_country delete atm.phone_number if (Object.keys(atm).length == 0) { continue } console.log(atm, properties) break } fs.writeFileSync("atms.geojson", JSON.stringify({type: "FeatureCollection", features}))