diff --git a/server/webserver.py b/server/webserver.py index 3a9029f..aab70b0 100644 --- a/server/webserver.py +++ b/server/webserver.py @@ -165,9 +165,16 @@ class WebServer: response.status = 422 return json.dumps("Error - Frequency of " + str(spot.freq / 1000.0) + "kHz is not in a known band.", default=serialize_everything) + # Reject if grid formatting incorrect + if spot.dx_grid and not re.match(r"^([A-R]{2}[0-9]{2}[A-X]{2}[0-9]{2}[A-X]{2}|[A-R]{2}[0-9]{2}[A-X]{2}[0-9]{2}|[A-R]{2}[0-9]{2}[A-X]{2}|[A-R]{2}[0-9]{2})$", spot.dx_grid.upper()): + response.content_type = 'application/json' + response.status = 422 + return json.dumps("Error - '" + spot.dx_grid + "' does not look like a valid Maidenhead grid.", default=serialize_everything) + # infer missing data, and add it to our database. spot.source = "API" - spot.icon = "desktop" + if not spot.sig: + spot.icon = "desktop" spot.infer_missing() self.spots.add(spot.id, spot, expire=MAX_SPOT_AGE) diff --git a/views/webpage_add_spot.tpl b/views/webpage_add_spot.tpl index 8793409..2afd2ec 100644 --- a/views/webpage_add_spot.tpl +++ b/views/webpage_add_spot.tpl @@ -31,7 +31,11 @@