diff --git a/.idea/spothole.iml b/.idea/spothole.iml
index 06bd9e9..8e8dfd8 100644
--- a/.idea/spothole.iml
+++ b/.idea/spothole.iml
@@ -4,7 +4,7 @@
-
+
\ No newline at end of file
diff --git a/alertproviders/ng3k.py b/alertproviders/ng3k.py
index 25a3833..b02b69f 100644
--- a/alertproviders/ng3k.py
+++ b/alertproviders/ng3k.py
@@ -2,7 +2,7 @@ import re
from datetime import datetime
import pytz
-from rss_parser import RSSParser
+from rss_parser import Parser
from alertproviders.http_alert_provider import HTTPAlertProvider
from data.alert import Alert
@@ -20,7 +20,7 @@ class NG3K(HTTPAlertProvider):
def _http_response_to_alerts(self, http_response):
new_alerts = []
- rss = RSSParser.parse(http_response.content.decode())
+ rss = Parser.parse(http_response.content.decode())
# Iterate through source data
for source_alert in rss.channel.items:
# Deal with "the format"...
diff --git a/alertproviders/wota.py b/alertproviders/wota.py
index fafb28b..557b876 100644
--- a/alertproviders/wota.py
+++ b/alertproviders/wota.py
@@ -1,7 +1,7 @@
from datetime import datetime
import pytz
-from rss_parser import RSSParser
+from rss_parser import Parser as RSSParser
from alertproviders.http_alert_provider import HTTPAlertProvider
from data.alert import Alert
diff --git a/core/geo_utils.py b/core/geo_utils.py
index e589b9b..8d110ea 100644
--- a/core/geo_utils.py
+++ b/core/geo_utils.py
@@ -1,3 +1,4 @@
+import json
import logging
import re
from math import floor
@@ -11,8 +12,10 @@ TRANSFORMER_OS_GRID_TO_WGS84 = Transformer.from_crs("EPSG:27700", "EPSG:4326")
TRANSFORMER_IRISH_GRID_TO_WGS84 = Transformer.from_crs("EPSG:29903", "EPSG:4326")
TRANSFORMER_CI_UTM_GRID_TO_WGS84 = Transformer.from_crs("+proj=utm +zone=30 +ellps=WGS84", "EPSG:4326")
-cq_zone_data = geopandas.GeoDataFrame.from_features(geopandas.read_file("datafiles/cqzones.geojson"))
-itu_zone_data = geopandas.GeoDataFrame.from_features(geopandas.read_file("datafiles/ituzones.geojson"))
+with open("datafiles/cqzones.geojson") as f:
+ cq_zone_data = geopandas.GeoDataFrame.from_features(json.load(f)["features"])
+with open("datafiles/ituzones.geojson") as f:
+ itu_zone_data = geopandas.GeoDataFrame.from_features(json.load(f)["features"])
for idx in cq_zone_data.index:
prepare(cq_zone_data.at[idx, 'geometry'])
for idx in itu_zone_data.index:
diff --git a/requirements.txt b/requirements.txt
index 7ab6fcb..293f6ec 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -3,16 +3,17 @@ requests-cache~=1.2.1
pyhamtools~=0.12.0
telnetlib3~=2.0.8
pytz~=2025.2
-requests~=2.32.5
+requests~=2.32.4
aprslib~=0.7.2
diskcache~=5.6.3
psutil~=7.1.0
requests-sse~=0.5.2
-rss-parser~=2.1.1
-pyproj~=3.7.2
-prometheus_client~=0.23.1
+rss-parser~=1.1.1
+pyproj~=3.5.0;python_version<="3.8"
+pyproj~=3.7.2;python_version>"3.8"
+prometheus_client~=0.21.1
beautifulsoup4~=4.14.2
-websocket-client~=1.9.0
-tornado~=6.5.4
+websocket-client~=1.8.0
+tornado~=6.4.2
tornado_eventsource~=3.0.0
-geopandas~=1.1.2
\ No newline at end of file
+geopandas~=0.13.2
\ No newline at end of file
diff --git a/spotproviders/wota.py b/spotproviders/wota.py
index 1f38187..cfe4a46 100644
--- a/spotproviders/wota.py
+++ b/spotproviders/wota.py
@@ -3,7 +3,7 @@ import re
from datetime import datetime
import pytz
-from rss_parser import RSSParser
+from rss_parser import Parser
from data.sig_ref import SIGRef
from data.spot import Spot
@@ -23,7 +23,7 @@ class WOTA(HTTPSpotProvider):
def _http_response_to_spots(self, http_response):
new_spots = []
- rss = RSSParser.parse(http_response.content.decode())
+ rss = Parser.parse(http_response.content.decode())
# Iterate through source data
for source_spot in rss.channel.items:
diff --git a/templates/about.html b/templates/about.html
index a25e0b0..d6bea1e 100644
--- a/templates/about.html
+++ b/templates/about.html
@@ -67,7 +67,7 @@
This software is dedicated to the memory of Tom G1PJB, SK, a friend and colleague who sadly passed away around the time I started writing it in Autumn 2025. I was looking forward to showing it to you when it was done.
-
+
{% end %}
\ No newline at end of file
diff --git a/templates/add_spot.html b/templates/add_spot.html
index f309aca..61fb695 100644
--- a/templates/add_spot.html
+++ b/templates/add_spot.html
@@ -69,8 +69,8 @@
-
-
+
+
{% end %}
\ No newline at end of file
diff --git a/templates/alerts.html b/templates/alerts.html
index ba6ab98..a8b9832 100644
--- a/templates/alerts.html
+++ b/templates/alerts.html
@@ -56,8 +56,8 @@
-
-
+
+
{% end %}
\ No newline at end of file
diff --git a/templates/bands.html b/templates/bands.html
index 7696d7a..a02be0d 100644
--- a/templates/bands.html
+++ b/templates/bands.html
@@ -62,9 +62,9 @@
-
-
-
+
+
+
{% end %}
\ No newline at end of file
diff --git a/templates/base.html b/templates/base.html
index 8c8cabf..b098bfe 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -46,10 +46,10 @@
crossorigin="anonymous">
-
-
-
-
+
+
+
+
diff --git a/templates/conditions.html b/templates/conditions.html
index 05d806c..2b40843 100644
--- a/templates/conditions.html
+++ b/templates/conditions.html
@@ -189,8 +189,8 @@
-
-
+
+
{% end %}
\ No newline at end of file
diff --git a/templates/map.html b/templates/map.html
index ddf49a9..64935d7 100644
--- a/templates/map.html
+++ b/templates/map.html
@@ -70,9 +70,9 @@
-
-
-
+
+
+
{% end %}
\ No newline at end of file
diff --git a/templates/spots.html b/templates/spots.html
index 1ad967f..080f4d8 100644
--- a/templates/spots.html
+++ b/templates/spots.html
@@ -87,9 +87,9 @@
-
-
-
+
+
+
{% end %}
\ No newline at end of file
diff --git a/templates/status.html b/templates/status.html
index c8660c4..cc018d2 100644
--- a/templates/status.html
+++ b/templates/status.html
@@ -59,8 +59,8 @@
-
-
+
+