diff --git a/htdocs/map.js b/htdocs/map.js index 53c6b17c..8cc563da 100644 --- a/htdocs/map.js +++ b/htdocs/map.js @@ -145,6 +145,7 @@ $(function(){ marker.mode = update.mode; marker.hops = update.hops; marker.band = update.band; + marker.url = update.location.url; marker.comment = update.location.comment; marker.weather = update.location.weather; marker.altitude = update.location.altitude; @@ -153,6 +154,8 @@ $(function(){ marker.gain = update.location.gain; marker.device = update.location.device; marker.aircraft = update.location.aircraft; + marker.receiver = update.location.receiver; + marker.antenna = update.location.antenna; marker.directivity = update.location.directivity; if (expectedCallsign && expectedCallsign == update.callsign) { @@ -363,17 +366,18 @@ $(function(){ return infowindow; } - var linkifyCallsign = function(callsign) { - var url = null; - + var linkifyCallsign = function(callsign, url = null) { + // Leave passed URLs as they are + if (url && (url != '')) + { /* leave as is */ } // 9-character strings may be AIS MMSI numbers - if(callsign.match(new RegExp('^[0-9]{9}$'))) + else if (callsign.match(new RegExp('^[0-9]{9}$'))) url = vessel_url; // 3 characters and a number may be a flight number - else if(callsign.match(new RegExp('^[A-Z]{3,4}[0-9]{1,4}[A-Z]{0,2}$'))) + else if (callsign.match(new RegExp('^[A-Z]{3,4}[0-9]{1,4}[A-Z]{0,2}$'))) url = flight_url; // 2 characters and a long number may be a flight number - else if(callsign.match(new RegExp('^[A-Z]{2}[0-9]{2,4}[A-Z]{0,2}$'))) + else if (callsign.match(new RegExp('^[A-Z]{2}[0-9]{2,4}[A-Z]{0,2}$'))) url = flight_url; // Everything else is a HAM callsign else @@ -455,12 +459,17 @@ $(function(){ var infowindow = getInfoWindow(); infowindow.callsign = callsign; var marker = markers[callsign]; - var timestring = moment(marker.lastseen).fromNow(); + var timeString = moment(marker.lastseen).fromNow(); var commentString = ""; var weatherString = ""; var detailsString = ""; var hopsString = ""; var distance = ""; + var urlString = null; + + if (marker.url) { + urlString = marker.url; + } if (marker.comment) { commentString += '

' + makeListTitle('Comment') + '

' + @@ -521,6 +530,14 @@ $(function(){ ); } + //if (marker.receiver) { + // detailsString += makeListItem('Receiver', marker.receiver); + //} + + //if (marker.antenna) { + // detailsString += makeListItem('Antenna', marker.antenna); + //} + if (marker.height) { detailsString += makeListItem('Height', marker.height.toFixed(0) + ' m'); } @@ -574,8 +591,8 @@ $(function(){ } infowindow.setContent( - '

' + linkifyCallsign(callsign) + distance + '

' + - '
' + timestring + ' using ' + marker.mode + + '

' + linkifyCallsign(callsign, urlString) + distance + '

' + + '
' + timeString + ' using ' + marker.mode + ( marker.band ? ' on ' + marker.band : '' ) + '
' + commentString + weatherString + detailsString + hopsString ); diff --git a/owrx/__main__.py b/owrx/__main__.py index 79c1fc21..daa4038f 100644 --- a/owrx/__main__.py +++ b/owrx/__main__.py @@ -18,6 +18,7 @@ from owrx.reporting import ReportingEngine from owrx.version import openwebrx_version from owrx.audio.queue import DecoderQueue from owrx.admin import add_admin_parser, run_admin_action +from owrx.receiverdb import ReceiverDatabase import signal import argparse import ssl @@ -112,6 +113,8 @@ Support and info: https://groups.io/g/openwebrx Services.start() + ReceiverDatabase.getSharedInstance().refresh() + try: # This is our HTTP server server = ThreadedHttpServer(("0.0.0.0", coreConfig.get_web_port()), RequestHandler)