mirror of
https://git.ianrenton.com/ian/spothole.git
synced 2026-08-06 02:21:42 +00:00
72 lines
2.6 KiB
Python
72 lines
2.6 KiB
Python
from core.config import config, create_provider_from_config
|
|
|
|
|
|
class DataProviders:
|
|
"""Global object for storing data providers."""
|
|
|
|
def __init__(self):
|
|
self.spot_providers = []
|
|
self.alert_providers = []
|
|
self.solar_condition_providers = []
|
|
self.static_data_providers = []
|
|
self.sig_ref_data_providers = []
|
|
self.callsign_data_providers = []
|
|
|
|
|
|
def setup(self):
|
|
for entry in config["spot-providers"]:
|
|
self.spot_providers.append(create_provider_from_config("providers.spot", entry))
|
|
for entry in config["alert-providers"]:
|
|
self.alert_providers.append(create_provider_from_config("providers.alert", entry))
|
|
for entry in config.get("solar-condition-providers", []):
|
|
self.solar_condition_providers.append(create_provider_from_config("providers.solarconditions", entry))
|
|
for entry in config.get("static-data-providers", []):
|
|
self.static_data_providers.append(create_provider_from_config("providers.staticdata", entry))
|
|
for entry in config.get("sig-ref-data-providers", []):
|
|
self.sig_ref_data_providers.append(create_provider_from_config("providers.sigrefdata", entry))
|
|
for entry in config.get("callsign-data-providers", []):
|
|
self.callsign_data_providers.append(create_provider_from_config("providers.callsigndata", entry))
|
|
|
|
|
|
def start(self):
|
|
for p in self.spot_providers:
|
|
if p.enabled:
|
|
p.start()
|
|
for p in self.alert_providers:
|
|
if p.enabled:
|
|
p.start()
|
|
for p in self.solar_condition_providers:
|
|
if p.enabled:
|
|
p.start()
|
|
for p in self.static_data_providers:
|
|
if p.enabled:
|
|
p.start()
|
|
for p in self.sig_ref_data_providers:
|
|
if p.enabled:
|
|
p.start()
|
|
for p in self.callsign_data_providers:
|
|
if p.enabled:
|
|
p.start()
|
|
|
|
def stop(self):
|
|
for sp in self.spot_providers:
|
|
if sp.enabled:
|
|
sp.stop()
|
|
for ap in self.alert_providers:
|
|
if ap.enabled:
|
|
ap.stop()
|
|
for scp in self.solar_condition_providers:
|
|
if scp.enabled:
|
|
scp.stop()
|
|
for srdp in self.sig_ref_data_providers:
|
|
if srdp.enabled:
|
|
srdp.stop()
|
|
for sdp in self.static_data_providers:
|
|
if sdp.enabled:
|
|
sdp.stop()
|
|
for cdp in self.callsign_data_providers:
|
|
if cdp.enabled:
|
|
cdp.stop()
|
|
|
|
# Global object
|
|
DATA_PROVIDERS = DataProviders() |