From b7792531a765ebd1f38f9c832549515f833381db Mon Sep 17 00:00:00 2001 From: Katsute <58778985+Katsute@users.noreply.github.com> Date: Mon, 28 Nov 2022 21:35:36 -0500 Subject: [PATCH] javascript optimizations, error messages --- pom.xml | 2 +- run.bat | 1 + run.sh | 1 + site/index.html | 8 ++++--- site/index.js | 16 +++++++++++++ site/live.html | 2 +- site/mta.js | 25 +++++++------------- site/tracking.js | 6 +++-- src/main/java/dev/katsute/mis/Main.java | 31 ++++++++++++++----------- 9 files changed, 56 insertions(+), 36 deletions(-) create mode 100644 run.bat create mode 100644 run.sh create mode 100644 site/index.js diff --git a/pom.xml b/pom.xml index a068c27..0fae534 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ dev.katsute mta-information-site - 3.28.0 + 3.30.0 UTF-8 diff --git a/run.bat b/run.bat new file mode 100644 index 0000000..58b06af --- /dev/null +++ b/run.bat @@ -0,0 +1 @@ +java -jar mta-information-site.jar \ No newline at end of file diff --git a/run.sh b/run.sh new file mode 100644 index 0000000..58b06af --- /dev/null +++ b/run.sh @@ -0,0 +1 @@ +java -jar mta-information-site.jar \ No newline at end of file diff --git a/site/index.html b/site/index.html index 6c73f67..dcf1081 100644 --- a/site/index.html +++ b/site/index.html @@ -90,7 +90,7 @@ - + @@ -107,7 +107,7 @@ - + @@ -132,7 +132,7 @@ - + @@ -163,5 +163,7 @@ + + \ No newline at end of file diff --git a/site/index.js b/site/index.js new file mode 100644 index 0000000..2a6962c --- /dev/null +++ b/site/index.js @@ -0,0 +1,16 @@ +"use strict"; + +const redir = async () => { + const here = await getLocation(); + + // todo + + window.location.href = + "/tracking" + + `?type=${type}` + + `&route=${route}` + + `&direction=${direction}` + + `&latitude=${here[0]}` + + `&longitude=${here[1]}` + + `&lang=${lang}`; +} \ No newline at end of file diff --git a/site/live.html b/site/live.html index 708287c..b8c85ea 100644 --- a/site/live.html +++ b/site/live.html @@ -1,7 +1,7 @@ - MTA Information Site - Bus + MTA Information Site diff --git a/site/mta.js b/site/mta.js index 5da6823..b6d6e4c 100644 --- a/site/mta.js +++ b/site/mta.js @@ -23,30 +23,19 @@ const LAT = 40.74058128194693; const LON = -73.98325077286562; -const __testMTA = async () => { - const bus = await getBusByCoord("M1", 0, LAT, LON); - const subway = await getSubwayByCoord(6, 0, LAT, LON); - console.log(bus); - console.log(await getBusByID(bus.vehicle.id)); - console.log(subway); - console.log(await getSubwayByID(subway.vehicle.id)); -} - /** * @returns [latitude, longitude] */ const getLocation = async () => new Promise((res, rej) => { if(!navigator.geolocation){ console.error("geolocation not supported"); - rej("geolocation not supported"); + res([LAT, LON]); }else{ navigator.geolocation.getCurrentPosition( - (success) => { - res([success.coords.latitude, success.coords.longitude]); - }, + (success) => res([success.coords.latitude, success.coords.longitude]), (err) => { console.error(err); - rej(err); + res([LAT, LON]); } ); } @@ -61,6 +50,8 @@ const getLocation = async () => new Promise((res, rej) => { * @returns bus */ const getBusByCoord = async (route, dir, lat, lon, lang) => { + +dir === 0 || +dir === 1 || console.warn(`Invalid direction ${dir}, expected 0 or 1`); + return await get("/request", { "type": "bus", "route": route, @@ -90,9 +81,11 @@ const getBusByID = async (id, lang) => { * @param {*} lat latitude * @param {*} lon longitude * @param {*} lang ISO 2-letter language code - * @returns bus + * @returns subway */ const getSubwayByCoord = async (route, dir, lat, lon, lang) => { + +dir === 1 || +dir === 3 || console.warn(`Invalid direction ${dir}, expected 1 or 3`); + return await get("/request", { "type": "subway", "route": route, @@ -106,7 +99,7 @@ const getSubwayByCoord = async (route, dir, lat, lon, lang) => { /** * @param {*} id vehicle id * @param {*} lang ISO 2-letter language code - * @returns bus + * @returns subway */ const getSubwayByID = async (id, lang) => { return await get("/request", { diff --git a/site/tracking.js b/site/tracking.js index 832cc49..595f637 100644 --- a/site/tracking.js +++ b/site/tracking.js @@ -31,10 +31,12 @@ const main = document.querySelector("main"); }else return console.error(`Unknown type: ${params.type}`); generate(data); + + const m = params.type == "bus" ? getBusByID : getSubwayByID; + setInterval(() => { main.innerHTML = ""; - - (params.type == "bus" ? getBusByID : getSubwayByID)(data.vehicle.id, params.lang).then(generate); + m(data.vehicle.id, params.lang).then(generate); }, 60 * 1000); })(); diff --git a/src/main/java/dev/katsute/mis/Main.java b/src/main/java/dev/katsute/mis/Main.java index 11c6eb2..eae4ff9 100644 --- a/src/main/java/dev/katsute/mis/Main.java +++ b/src/main/java/dev/katsute/mis/Main.java @@ -24,6 +24,7 @@ import dev.katsute.simplehttpserver.handler.file.FileOptions; import java.io.*; +import java.net.BindException; import java.net.URL; import java.nio.file.Files; import java.util.HashMap; @@ -94,22 +95,26 @@ public static void main(String[] args) throws Throwable { System.out.println("Initializing server"); // initialize server { - final SimpleHttpServer server = SimpleHttpServer.create(8080); - server.setExecutor(Executors.newCachedThreadPool()); + try{ + final SimpleHttpServer server = SimpleHttpServer.create(8080); + server.setExecutor(Executors.newCachedThreadPool()); - final FileHandler handler = new MimeFileHandler(); - final FileOptions options = new FileOptions.Builder() - .setLoadingOption(FileOptions.FileLoadingOption.LIVE) - .setWalk(true) - .build(); - handler.addFile(new File("site/index.html"), "/", options); - handler.addDirectory(new File("site"), "/", options); - server.createContext("/", handler); - server.createContext("/request", new RequestHandler(mta)); + final FileHandler handler = new MimeFileHandler(); + final FileOptions options = new FileOptions.Builder() + .setLoadingOption(FileOptions.FileLoadingOption.LIVE) + .setWalk(true) + .build(); + handler.addFile(new File("site/index.html"), "/", options); + handler.addDirectory(new File("site"), "/", options); + server.createContext("/", handler); + server.createContext("/request", new RequestHandler(mta)); - server.start(); + server.start(); - System.out.println("Server started at localhost:8080"); + System.out.println("Server started at localhost:8080"); + }catch(final BindException e){ + System.out.println("Failed to start server, server is already running or port is occupied"); + } } }