mirror of
https://github.com/laurent22/joplin.git
synced 2024-12-24 10:27:10 +02:00
All: Change geolocation service to freegeoip.app to improve privacy (#2503)
removed unnecessary request to `api.ipify.org` closes #2469
This commit is contained in:
parent
25a246b6ae
commit
a576ad2a39
@ -1,25 +1,22 @@
|
|||||||
const { shim } = require('lib/shim.js');
|
const { shim } = require('lib/shim.js');
|
||||||
const { netUtils } = require('lib/net-utils.js');
|
|
||||||
|
|
||||||
class GeolocationNode {
|
class GeolocationNode {
|
||||||
static async currentPosition(options = null) {
|
static async currentPosition(options = null) {
|
||||||
if (!options) options = {};
|
if (!options) options = {};
|
||||||
|
|
||||||
const ip = await netUtils.ip();
|
let response = await shim.fetch('https://freegeoip.app/json/');
|
||||||
|
|
||||||
let response = await shim.fetch(`http://ip-api.com/json/${ip}`);
|
|
||||||
if (!response.ok) throw new Error(`Could not get geolocation: ${await response.text()}`);
|
if (!response.ok) throw new Error(`Could not get geolocation: ${await response.text()}`);
|
||||||
|
|
||||||
response = await response.json();
|
response = await response.json();
|
||||||
|
|
||||||
if (!('lat' in response) || !('lon' in response)) throw new Error(`Invalid geolocation response: ${response ? JSON.stringify(response) : '<null>'}`);
|
if (!('latitude' in response) || !('longitude' in response)) throw new Error(`Invalid geolocation response: ${response ? JSON.stringify(response) : '<null>'}`);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
timestamp: new Date().getTime(),
|
timestamp: new Date().getTime(),
|
||||||
coords: {
|
coords: {
|
||||||
longitude: response.lon,
|
longitude: response.longitude,
|
||||||
altitude: 0,
|
altitude: 0,
|
||||||
latitude: response.lat,
|
latitude: response.latitude,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user