mirror of
https://git.ianrenton.com/ian/spothole.git
synced 2026-06-23 21:25:12 +00:00
Support API key for GMA spots #112
This commit is contained in:
@@ -27,42 +27,57 @@ spot-providers:
|
|||||||
- class: "POTA"
|
- class: "POTA"
|
||||||
name: "POTA"
|
name: "POTA"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
- class: "SOTA"
|
- class: "SOTA"
|
||||||
name: "SOTA"
|
name: "SOTA"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
- class: "WWFF"
|
- class: "WWFF"
|
||||||
name: "WWFF"
|
name: "WWFF"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
- class: "WWBOTA"
|
- class: "WWBOTA"
|
||||||
name: "WWBOTA"
|
name: "WWBOTA"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
- class: "GMA"
|
- class: "GMA"
|
||||||
name: "GMA"
|
name: "GMA"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
# GMA requires an API key to fetch spots. After creating an account on cqgma.org, email support and request one.
|
||||||
|
api-key: ""
|
||||||
|
|
||||||
- class: "HEMA"
|
- class: "HEMA"
|
||||||
name: "HEMA"
|
name: "HEMA"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
- class: "ParksNPeaks"
|
- class: "ParksNPeaks"
|
||||||
name: "ParksNPeaks"
|
name: "ParksNPeaks"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
- class: "ZLOTA"
|
- class: "ZLOTA"
|
||||||
name: "ZLOTA"
|
name: "ZLOTA"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
- class: "WOTA"
|
- class: "WOTA"
|
||||||
name: "WOTA"
|
name: "WOTA"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
- class: "LLOTA"
|
- class: "LLOTA"
|
||||||
name: "LLOTA"
|
name: "LLOTA"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
- class: "WWTOTA"
|
- class: "WWTOTA"
|
||||||
name: "WWTOTA"
|
name: "WWTOTA"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
- class: "Tiles"
|
- class: "Tiles"
|
||||||
name: "Tiles"
|
name: "Tiles"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
- class: "APRSIS"
|
- class: "APRSIS"
|
||||||
name: "APRS-IS"
|
name: "APRS-IS"
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
- class: "DXCluster"
|
- class: "DXCluster"
|
||||||
name: "HRD Cluster"
|
name: "HRD Cluster"
|
||||||
enabled: true
|
enabled: true
|
||||||
@@ -78,6 +93,7 @@ spot-providers:
|
|||||||
# sure you aren't also separately connecting to RBN directly, otherwise you may get duplicate spots.) Note that not
|
# sure you aren't also separately connecting to RBN directly, otherwise you may get duplicate spots.) Note that not
|
||||||
# all clusters sent RBN spots anyway.
|
# all clusters sent RBN spots anyway.
|
||||||
allow_rbn_spots: false
|
allow_rbn_spots: false
|
||||||
|
|
||||||
- class: "DXCluster"
|
- class: "DXCluster"
|
||||||
name: "W3LPL Cluster"
|
name: "W3LPL Cluster"
|
||||||
enabled: false
|
enabled: false
|
||||||
@@ -93,6 +109,7 @@ spot-providers:
|
|||||||
# sure you aren't also separately connecting to RBN directly, otherwise you may get duplicate spots.) Note that not
|
# sure you aren't also separately connecting to RBN directly, otherwise you may get duplicate spots.) Note that not
|
||||||
# all clusters sent RBN spots anyway.
|
# all clusters sent RBN spots anyway.
|
||||||
allow_rbn_spots: false
|
allow_rbn_spots: false
|
||||||
|
|
||||||
- class: "RBN"
|
- class: "RBN"
|
||||||
name: "RBN CW/RTTY"
|
name: "RBN CW/RTTY"
|
||||||
enabled: false
|
enabled: false
|
||||||
@@ -102,15 +119,18 @@ spot-providers:
|
|||||||
# received by Spothole but not shown on the web UI unless the user explicitly turns it on. For that behaviour,
|
# received by Spothole but not shown on the web UI unless the user explicitly turns it on. For that behaviour,
|
||||||
# set enabled to true, but enabled-by-default-in-web-ui to false.
|
# set enabled to true, but enabled-by-default-in-web-ui to false.
|
||||||
enabled-by-default-in-web-ui: false
|
enabled-by-default-in-web-ui: false
|
||||||
|
|
||||||
- class: "RBN"
|
- class: "RBN"
|
||||||
name: "RBN FT8"
|
name: "RBN FT8"
|
||||||
enabled: false
|
enabled: false
|
||||||
port: 7001
|
port: 7001
|
||||||
enabled-by-default-in-web-ui: false
|
enabled-by-default-in-web-ui: false
|
||||||
|
|
||||||
- class: "UKPacketNet"
|
- class: "UKPacketNet"
|
||||||
name: "UK Packet Radio Net"
|
name: "UK Packet Radio Net"
|
||||||
enabled: false
|
enabled: false
|
||||||
enabled-by-default-in-web-ui: false
|
enabled-by-default-in-web-ui: false
|
||||||
|
|
||||||
- class: "XOTA"
|
- class: "XOTA"
|
||||||
name: "39C3 TOTA"
|
name: "39C3 TOTA"
|
||||||
enabled: false
|
enabled: false
|
||||||
@@ -120,9 +140,10 @@ spot-providers:
|
|||||||
# programmes and so different URLs provide different programmes.
|
# programmes and so different URLs provide different programmes.
|
||||||
sig: "TOTA"
|
sig: "TOTA"
|
||||||
locations-csv: "datafiles/39c3-tota.csv"
|
locations-csv: "datafiles/39c3-tota.csv"
|
||||||
|
|
||||||
- class: "XOTA"
|
- class: "XOTA"
|
||||||
name: "EH23 TOTA"
|
name: "EH23 TOTA"
|
||||||
enabled: true
|
enabled: false
|
||||||
url: "wss://eh23.totawatch.de/api/spot/live"
|
url: "wss://eh23.totawatch.de/api/spot/live"
|
||||||
sig: "TOTA"
|
sig: "TOTA"
|
||||||
locations-csv: "datafiles/eh23-tota.csv"
|
locations-csv: "datafiles/eh23-tota.csv"
|
||||||
@@ -133,21 +154,27 @@ alert-providers:
|
|||||||
- class: "POTA"
|
- class: "POTA"
|
||||||
name: "POTA"
|
name: "POTA"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
- class: "SOTA"
|
- class: "SOTA"
|
||||||
name: "SOTA"
|
name: "SOTA"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
- class: "WWFF"
|
- class: "WWFF"
|
||||||
name: "WWFF"
|
name: "WWFF"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
- class: "ParksNPeaks"
|
- class: "ParksNPeaks"
|
||||||
name: "ParksNPeaks"
|
name: "ParksNPeaks"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
- class: "WOTA"
|
- class: "WOTA"
|
||||||
name: "WOTA"
|
name: "WOTA"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
- class: "BOTA"
|
- class: "BOTA"
|
||||||
name: "BOTA"
|
name: "BOTA"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
- class: "NG3K"
|
- class: "NG3K"
|
||||||
name: "NG3K"
|
name: "NG3K"
|
||||||
enabled: true
|
enabled: true
|
||||||
@@ -159,12 +186,15 @@ solar-condition-providers:
|
|||||||
- class: "HamQSL"
|
- class: "HamQSL"
|
||||||
name: "HamQSL"
|
name: "HamQSL"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
- class: "NOAA3dayForecast"
|
- class: "NOAA3dayForecast"
|
||||||
name: "NOAA 3-day Forecast"
|
name: "NOAA 3-day Forecast"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
- class: "GIROIonosonde"
|
- class: "GIROIonosonde"
|
||||||
name: "GIRO Ionosonde Data"
|
name: "GIRO Ionosonde Data"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
- class: "KC2GProp"
|
- class: "KC2GProp"
|
||||||
name: "KC2G Propagation Data"
|
name: "KC2G Propagation Data"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|||||||
@@ -19,7 +19,12 @@ class GMA(HTTPSpotProvider):
|
|||||||
REF_INFO_URL_ROOT = "https://www.cqgma.org/api/ref/?"
|
REF_INFO_URL_ROOT = "https://www.cqgma.org/api/ref/?"
|
||||||
|
|
||||||
def __init__(self, provider_config):
|
def __init__(self, provider_config):
|
||||||
super().__init__(provider_config, self.SPOTS_URL, self.POLL_INTERVAL_SEC)
|
# Ensure there is an API key in our config, and set up the query URL using it
|
||||||
|
self.api_key = provider_config.get("api-key", "")
|
||||||
|
if self.api_key != "":
|
||||||
|
super().__init__(provider_config, self.SPOTS_URL + "?key=" + self.api_key, self.POLL_INTERVAL_SEC)
|
||||||
|
else:
|
||||||
|
logging.warning("GMA spot provider configured but no api key was provided, this API will not be queried.")
|
||||||
|
|
||||||
def _http_response_to_spots(self, http_response):
|
def _http_response_to_spots(self, http_response):
|
||||||
new_spots = []
|
new_spots = []
|
||||||
|
|||||||
@@ -76,7 +76,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="/js/add-spot.js?v=1781958515"></script>
|
<script src="/js/add-spot.js?v=1782025489"></script>
|
||||||
<script>$(document).ready(function () {
|
<script>$(document).ready(function () {
|
||||||
$("#nav-link-add-spot").addClass("active");
|
$("#nav-link-add-spot").addClass("active");
|
||||||
}); <!-- highlight active page in nav --></script>
|
}); <!-- highlight active page in nav --></script>
|
||||||
|
|||||||
@@ -75,7 +75,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="/js/alerts.js?v=1781958515"></script>
|
<script src="/js/alerts.js?v=1782025489"></script>
|
||||||
<script>$(document).ready(function () {
|
<script>$(document).ready(function () {
|
||||||
$("#nav-link-alerts").addClass("active");
|
$("#nav-link-alerts").addClass("active");
|
||||||
}); <!-- highlight active page in nav --></script>
|
}); <!-- highlight active page in nav --></script>
|
||||||
|
|||||||
@@ -77,8 +77,8 @@
|
|||||||
<script>
|
<script>
|
||||||
let spotProvidersEnabledByDefault = {% raw json_encode(web_ui_options["spot-providers-enabled-by-default"]) %};
|
let spotProvidersEnabledByDefault = {% raw json_encode(web_ui_options["spot-providers-enabled-by-default"]) %};
|
||||||
</script>
|
</script>
|
||||||
<script src="/js/spotsbandsandmap.js?v=1781958515"></script>
|
<script src="/js/spotsbandsandmap.js?v=1782025489"></script>
|
||||||
<script src="/js/bands.js?v=1781958515"></script>
|
<script src="/js/bands.js?v=1782025489"></script>
|
||||||
<script>$(document).ready(function () {
|
<script>$(document).ready(function () {
|
||||||
$("#nav-link-bands").addClass("active");
|
$("#nav-link-bands").addClass("active");
|
||||||
}); <!-- highlight active page in nav --></script>
|
}); <!-- highlight active page in nav --></script>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{% extends "skeleton.html" %}
|
{% extends "skeleton.html" %}
|
||||||
{% block head_extra %}
|
{% block head_extra %}
|
||||||
<link rel="stylesheet" href="/css/style.css?v=1781958515" type="text/css">
|
<link rel="stylesheet" href="/css/style.css?v=1782025489" type="text/css">
|
||||||
<link href="/vendor/css/bootstrap-5.3.8.min.css" rel="stylesheet">
|
<link href="/vendor/css/bootstrap-5.3.8.min.css" rel="stylesheet">
|
||||||
<link href="/vendor/css/fontawesome-6.7.2.min.css" rel="stylesheet">
|
<link href="/vendor/css/fontawesome-6.7.2.min.css" rel="stylesheet">
|
||||||
<link href="/vendor/css/solid-6.7.2.min.css" rel="stylesheet">
|
<link href="/vendor/css/solid-6.7.2.min.css" rel="stylesheet">
|
||||||
@@ -10,10 +10,10 @@
|
|||||||
<script src="/vendor/js/bootstrap-5.3.8.bundle.min.js"></script>
|
<script src="/vendor/js/bootstrap-5.3.8.bundle.min.js"></script>
|
||||||
<script src="/vendor/js/tinycolor2-1.6.0.min.js"></script>
|
<script src="/vendor/js/tinycolor2-1.6.0.min.js"></script>
|
||||||
|
|
||||||
<script src="/js/utils.js?v=1781958515"></script>
|
<script src="/js/utils.js?v=1782025489"></script>
|
||||||
<script src="/js/ui-ham.js?v=1781958515"></script>
|
<script src="/js/ui-ham.js?v=1782025489"></script>
|
||||||
<script src="/js/geo.js?v=1781958515"></script>
|
<script src="/js/geo.js?v=1782025489"></script>
|
||||||
<script src="/js/common.js?v=1781958515"></script>
|
<script src="/js/common.js?v=1782025489"></script>
|
||||||
{% end %}
|
{% end %}
|
||||||
{% block body %}
|
{% block body %}
|
||||||
<div class="container">
|
<div class="container">
|
||||||
|
|||||||
@@ -284,7 +284,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="/vendor/js/chart-4.4.9.umd.min.js"></script>
|
<script src="/vendor/js/chart-4.4.9.umd.min.js"></script>
|
||||||
<script src="/js/conditions.js?v=1781958515"></script>
|
<script src="/js/conditions.js?v=1782025489"></script>
|
||||||
<script>$(document).ready(function () {
|
<script>$(document).ready(function () {
|
||||||
$("#nav-link-conditions").addClass("active");
|
$("#nav-link-conditions").addClass("active");
|
||||||
}); <!-- highlight active page in nav --></script>
|
}); <!-- highlight active page in nav --></script>
|
||||||
|
|||||||
@@ -95,8 +95,8 @@
|
|||||||
<script>
|
<script>
|
||||||
let spotProvidersEnabledByDefault = {% raw json_encode(web_ui_options["spot-providers-enabled-by-default"]) %};
|
let spotProvidersEnabledByDefault = {% raw json_encode(web_ui_options["spot-providers-enabled-by-default"]) %};
|
||||||
</script>
|
</script>
|
||||||
<script src="/js/spotsbandsandmap.js?v=1781958515"></script>
|
<script src="/js/spotsbandsandmap.js?v=1782025489"></script>
|
||||||
<script src="/js/map.js?v=1781958515"></script>
|
<script src="/js/map.js?v=1782025489"></script>
|
||||||
<script>$(document).ready(function () {
|
<script>$(document).ready(function () {
|
||||||
$("#nav-link-map").addClass("active");
|
$("#nav-link-map").addClass("active");
|
||||||
}); <!-- highlight active page in nav --></script>
|
}); <!-- highlight active page in nav --></script>
|
||||||
|
|||||||
@@ -116,8 +116,8 @@
|
|||||||
<script>
|
<script>
|
||||||
let spotProvidersEnabledByDefault = {% raw json_encode(web_ui_options["spot-providers-enabled-by-default"]) %};
|
let spotProvidersEnabledByDefault = {% raw json_encode(web_ui_options["spot-providers-enabled-by-default"]) %};
|
||||||
</script>
|
</script>
|
||||||
<script src="/js/spotsbandsandmap.js?v=1781958515"></script>
|
<script src="/js/spotsbandsandmap.js?v=1782025489"></script>
|
||||||
<script src="/js/spots.js?v=1781958515"></script>
|
<script src="/js/spots.js?v=1782025489"></script>
|
||||||
<script>$(document).ready(function () {
|
<script>$(document).ready(function () {
|
||||||
$("#nav-link-spots").addClass("active");
|
$("#nav-link-spots").addClass("active");
|
||||||
}); <!-- highlight active page in nav --></script>
|
}); <!-- highlight active page in nav --></script>
|
||||||
|
|||||||
@@ -59,7 +59,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="/js/status.js?v=1781958515"></script>
|
<script src="/js/status.js?v=1782025489"></script>
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
$("#nav-link-status").addClass("active");
|
$("#nav-link-status").addClass("active");
|
||||||
|
|||||||
Reference in New Issue
Block a user