Ready for first public test.

This commit is contained in:
eetnaviation
2024-03-16 10:57:10 +02:00
parent 6482a7978c
commit cc539e3f79
2 changed files with 56 additions and 36 deletions

View File

@ -1,5 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
@ -11,48 +12,54 @@
} }
</style> </style>
</head> </head>
<body> <body>
<h2>Bus Location Finder</h2> <h2>Bus Location Finder</h2>
<form id="search-form"> <form id="search-form">
<label for="bus-id">Enter Bus ID (TAK):</label> <label for="bus-id">Enter Bus ID (TAK):</label>
<input type="text" id="bus-id" name="bus-id"> <input type="text" id="bus-id" name="bus-id">
<button type="submit">Search</button> <button type="submit">Search</button>
</form> </form>
<div id="map"></div> <div id="map"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/leaflet.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/leaflet.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/leaflet.css" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/leaflet.css" />
<script src="/socket.io/socket.io.js"></script> <script src="/socket.io/socket.io.js"></script>
<script> <script>
var socket = io(); var socket = io();
// Stuff for the map // Stuff for the map
var map = L.map('map').setView([59.4370, 24.7536], 12); var map = L.map('map').setView([59.4370, 24.7536], 12);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors' attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map); }).addTo(map);
// Function to handle form submission // Function to handle form submission
document.getElementById('search-form').addEventListener('submit', function(event) { document.getElementById('search-form').addEventListener('submit', function (event) {
event.preventDefault(); event.preventDefault();
var tak = document.getElementById('bus-id').value.trim(); var tak = document.getElementById('bus-id').value.trim();
socket.emit('takSearch', tak); socket.emit('takSearch', tak);
}); });
socket.on('takResults', (type, line, lat, long, tak) => {
console.log("Datafetch success");
console.log("Transport Type:", type);
console.log("Line Number:", line);
console.log("Latitude:", lat);
console.log("Longitude:", long);
console.log("TAK:", tak);
console.log();
/*// Add markers for each bus location
data.forEach(function(bus) {
L.marker([bus.latitude, bus.longitude]).addTo(map);
});*/
});
socket.on('takResults', (data) => { </script>
console.log("yay :)");
console.log(data);
/*// Add markers for each bus location
data.forEach(function(bus) {
L.marker([bus.latitude, bus.longitude]).addTo(map);
});*/
});
</script>
</body> </body>
</html> </html>

17
main.js
View File

@ -12,6 +12,13 @@ const axios = require('axios');
const fs = require('node:fs'); const fs = require('node:fs');
var sleep = require('sleep'); var sleep = require('sleep');
let requestedType = "Unfetched";
let requestedLine = "Unfetched";
let requestedLat = "Unfetched";
let requestedLong = "Unfetched";
let requestedTak = "Unfetched";
console.log("Server initalize!"); console.log("Server initalize!");
app.get('/', (req, res) => { app.get('/', (req, res) => {
@ -30,8 +37,8 @@ io.on('connection', (socket) => {
socket.on('takSearch', (tak) => { socket.on('takSearch', (tak) => {
try { try {
console.log("Input tak: " + tak); console.log("Input tak: " + tak);
let takSearchResults = fetchData(tak); fetchData(tak);
socket.emit('takResults', takSearchResults); socket.emit('takResults', requestedType, requestedLine, requestedLat, requestedLong, requestedTak);
} catch { } catch {
} }
@ -79,6 +86,12 @@ async function fetchData(takInput) {
break; break;
} }
if (tak == takInput) { if (tak == takInput) {
requestedType = transportTypeDecoded;
requestedLine = lineNumber;
requestedLat = latitude;
requestedLong = longitude;
requestedTak = tak;
console.log("Requested data fetched:");
console.log("Transport Type:", transportTypeDecoded); console.log("Transport Type:", transportTypeDecoded);
console.log("Line Number:", lineNumber); console.log("Line Number:", lineNumber);
console.log("Latitude:", latitude); console.log("Latitude:", latitude);