From ff60b0809dd5aa62e2c9e4f42b661f040e964699 Mon Sep 17 00:00:00 2001 From: sbosse Date: Mon, 21 Jul 2025 23:08:20 +0200 Subject: [PATCH] Mon 21 Jul 22:43:21 CEST 2025 --- js/geoip/gps5.js | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 js/geoip/gps5.js diff --git a/js/geoip/gps5.js b/js/geoip/gps5.js new file mode 100644 index 0000000..82935f2 --- /dev/null +++ b/js/geoip/gps5.js @@ -0,0 +1,37 @@ +/* GPS location based on an external database lookup */ + +/* requires https */ + +var serviceHost="api.beacondb.net", + servicePath="/v1/geolocate?key=test"; + + + +function geolocate (cb) { + var https; + if (typeof require == 'function') try { + https = require('https'); + } catch (e) { /* TODO Browser */ } + if (!https) return cb(new Error('ENETWORK')); + var req = https.request({ + hostname: serviceHost, + port: 443, + path: servicePath, + method: 'GET' + }, function (res) { + res.on('data', function (d){ + try { + var json = JSON.parse(d); + cb(json) + } catch (e) { cb(e) }; + }); + }) + + req.on('error', function (e) { + console.error(e); + cb(e); + }); + req.end(); +} + +module.exports = { geolocate : geolocate };