mirror of
https://git.ianrenton.com/ian/spothole.git
synced 2025-10-27 16:59:25 +00:00
38 lines
1.6 KiB
Python
38 lines
1.6 KiB
Python
from datetime import datetime
|
|
|
|
import pytz
|
|
|
|
from alertproviders.http_alert_provider import HTTPAlertProvider
|
|
from data.alert import Alert
|
|
|
|
|
|
# Alert provider for Worldwide Flora and Fauna
|
|
class WWFF(HTTPAlertProvider):
|
|
POLL_INTERVAL_SEC = 3600
|
|
ALERTS_URL = "https://spots.wwff.co/static/agendas.json"
|
|
|
|
def __init__(self, provider_config):
|
|
super().__init__(provider_config, self.ALERTS_URL, self.POLL_INTERVAL_SEC)
|
|
|
|
def http_response_to_alerts(self, http_response):
|
|
new_alerts = []
|
|
# Iterate through source data
|
|
for source_alert in http_response.json():
|
|
# Convert to our alert format
|
|
alert = Alert(source=self.name,
|
|
source_id=source_alert["id"],
|
|
dx_call=source_alert["activator_call"].upper(),
|
|
freqs_modes=source_alert["band"] + " " + source_alert["mode"],
|
|
comment=source_alert["remarks"],
|
|
sig="WWFF",
|
|
sig_refs=[source_alert["reference"]],
|
|
icon="seedling",
|
|
start_time=datetime.strptime(source_alert["utc_start"],
|
|
"%Y-%m-%d %H:%M:%S").replace(tzinfo=pytz.UTC).timestamp(),
|
|
end_time=datetime.strptime(source_alert["utc_end"],
|
|
"%Y-%m-%d %H:%M:%S").replace(tzinfo=pytz.UTC).timestamp())
|
|
|
|
# Add to our list
|
|
new_alerts.append(alert)
|
|
return new_alerts
|