unify formatting

This commit is contained in:
Sebastian Hugentobler 2023-02-01 20:37:40 +01:00
parent 6419d5defd
commit 553f764e69
Signed by: shu
GPG Key ID: BB32CF3CA052C2F0

View File

@ -17,8 +17,8 @@ let gpxTrack = null;
*/ */
function toWGS84(point) { function toWGS84(point) {
// convert LV95 into the civilian system // convert LV95 into the civilian system
let y_aux = (point[0] - 2600000)/1000000; let y_aux = (point[0] - 2600000) / 1000000;
let x_aux = (point[1] - 1200000)/1000000; let x_aux = (point[1] - 1200000) / 1000000;
// calculate longitude and latitude in the unit 10000" // calculate longitude and latitude in the unit 10000"
let lat = 16.9023892 + let lat = 16.9023892 +
@ -38,7 +38,7 @@ function toWGS84(point) {
lat = lat * 100 / 36; lat = lat * 100 / 36;
lon = lon * 100 / 36; lon = lon * 100 / 36;
return {lat: lat, lon: lon}; return { lat: lat, lon: lon };
} }
/** /**
@ -47,7 +47,7 @@ function toWGS84(point) {
* @param {*} point Array of Swiss projection coordinates, position 0 is E and 1 is N. * @param {*} point Array of Swiss projection coordinates, position 0 is E and 1 is N.
* @returns Track point xml node for gpx. * @returns Track point xml node for gpx.
*/ */
function toTrackPoint(point) { function toTrackPoint(point) {
let wgs84Point = toWGS84(point); let wgs84Point = toWGS84(point);
return `<trkpt lat="${wgs84Point.lat}" lon="${wgs84Point.lon}"/>`; return `<trkpt lat="${wgs84Point.lat}" lon="${wgs84Point.lon}"/>`;
} }
@ -57,7 +57,7 @@ function toWGS84(point) {
* *
* @returns Way point xml node for gpx. * @returns Way point xml node for gpx.
*/ */
function toWayPoint(point) { function toWayPoint(point) {
let wgs84Point = toWGS84(point.geom.coordinates); let wgs84Point = toWGS84(point.geom.coordinates);
return ` return `
<wpt lat="${wgs84Point.lat}" lon="${wgs84Point.lon}"> <wpt lat="${wgs84Point.lat}" lon="${wgs84Point.lon}">
@ -74,7 +74,9 @@ function toWGS84(point) {
*/ */
function trackTitle(geoJson) { function trackTitle(geoJson) {
const route = geoJson.segments[0]; const route = geoJson.segments[0];
const book = geoJson.book_route_number ? `${geoJson.book_route_number} - ` : ""; const book = geoJson.book_route_number
? `${geoJson.book_route_number} - `
: "";
return `${book}${geoJson.title}`; return `${book}${geoJson.title}`;
} }
@ -86,16 +88,18 @@ function trackTitle(geoJson) {
* @returns Simple gpx string. * @returns Simple gpx string.
*/ */
function toGpx(geoJson) { function toGpx(geoJson) {
let trackSegments = geoJson.segments.map(segment => { let trackSegments = geoJson.segments.map((segment) => {
return `<trkseg> return `<trkseg>
${segment.geom.coordinates.map(toTrackPoint).join("")} ${segment.geom.coordinates.map(toTrackPoint).join("")}
</trkseg>`; </trkseg>`;
}).join(""); }).join("");
let endPoint = geoJson.end_point ? toWayPoint(geoJson.end_point) : ""; let endPoint = geoJson.end_point ? toWayPoint(geoJson.end_point) : "";
let waypoints = geoJson.waypoints ? geoJson.waypoints.map(wp => { let waypoints = geoJson.waypoints
? geoJson.waypoints.map((wp) => {
return toWayPoint(wp.reference_poi); return toWayPoint(wp.reference_poi);
}).join("") : ""; }).join("")
: "";
const routeTitle = trackTitle(geoJson); const routeTitle = trackTitle(geoJson);
@ -132,12 +136,12 @@ function listener(details) {
let encoder = new TextEncoder(); let encoder = new TextEncoder();
let data = []; let data = [];
filter.ondata = event => { filter.ondata = (event) => {
data.push(event.data); data.push(event.data);
}; };
filter.onstop = async event => { filter.onstop = async (event) => {
let blob = new Blob(data, {type: 'text/html'}); let blob = new Blob(data, { type: "text/html" });
let buffer = await blob.arrayBuffer(); let buffer = await blob.arrayBuffer();
let str = decoder.decode(buffer); let str = decoder.decode(buffer);
@ -148,7 +152,7 @@ function listener(details) {
let geoJson = JSON.parse(str); let geoJson = JSON.parse(str);
const routeTitle = trackTitle(geoJson); const routeTitle = trackTitle(geoJson);
gpxTrack = {title: routeTitle, data: toGpx(geoJson)}; gpxTrack = { title: routeTitle, data: toGpx(geoJson) };
}; };
return {}; return {};
@ -177,19 +181,20 @@ function handleClick(tab) {
return; return;
} }
let blob = new Blob([gpxTrack.data], {type: "application/gpx+xml"}); let blob = new Blob([gpxTrack.data], { type: "application/gpx+xml" });
let objectURL = URL.createObjectURL(blob); let objectURL = URL.createObjectURL(blob);
let downloading = browser.downloads.download({ let downloading = browser.downloads.download({
url : objectURL, url: objectURL,
filename : `${gpxTrack.title}.gpx`, filename: `${gpxTrack.title}.gpx`,
saveAs: true, saveAs: true,
conflictAction : 'uniquify' conflictAction: "uniquify",
}); });
downloading.then( downloading.then(
(id) => console.log(`Started downloading: ${id}`), (id) => console.log(`Started downloading: ${id}`),
(error) => console.log(`Download failed: ${error}`)); (error) => console.log(`Download failed: ${error}`),
);
gpxTrack = null; gpxTrack = null;
} }
@ -203,7 +208,10 @@ function updateActiveTab(tabs) {
} }
} }
let gettingActiveTab = browser.tabs.query({active: true, currentWindow: true}); let gettingActiveTab = browser.tabs.query({
active: true,
currentWindow: true,
});
gettingActiveTab.then(updateTab); gettingActiveTab.then(updateTab);
} }
@ -214,23 +222,27 @@ function updateIcon(tab) {
const hasTrack = checkTrack(tab); const hasTrack = checkTrack(tab);
browser.browserAction.setIcon({ browser.browserAction.setIcon({
path: hasTrack ? { path: hasTrack
? {
48: "icons/map.png", 48: "icons/map.png",
} : { }
: {
48: "icons/map-disabled.png", 48: "icons/map-disabled.png",
}, },
tabId: tab.id tabId: tab.id,
}); });
browser.browserAction.setTitle({ browser.browserAction.setTitle({
title: hasTrack ? `Download track "${gpxTrack.title}"` : 'No track selected', title: hasTrack
tabId: tab.id ? `Download track "${gpxTrack.title}"`
: "No track selected",
tabId: tab.id,
}); });
} }
browser.webRequest.onBeforeRequest.addListener( browser.webRequest.onBeforeRequest.addListener(
listener, listener,
{urls: ["https://www.sac-cas.ch/*[routeId]*"]}, { urls: ["https://www.sac-cas.ch/*[routeId]*"] },
["blocking"] ["blocking"],
); );
browser.browserAction.onClicked.addListener(handleClick); browser.browserAction.onClicked.addListener(handleClick);