mirror of
https://git.ianrenton.com/ian/spothole.git
synced 2026-08-06 02:21:42 +00:00
Refactor of caching & data storage part 10 #118
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user