mirror of
https://git.ianrenton.com/ian/spothole.git
synced 2025-10-28 01:09:26 +00:00
Load providers by class & module name. Closes #6
This commit is contained in:
28
main.py
28
main.py
@@ -6,6 +6,7 @@ import sys
|
||||
from datetime import datetime
|
||||
from time import sleep
|
||||
|
||||
import importlib
|
||||
import psutil
|
||||
import pytz
|
||||
|
||||
@@ -41,30 +42,11 @@ def shutdown(sig, frame):
|
||||
p.stop()
|
||||
cleanup_timer.stop()
|
||||
|
||||
# Utility method to get a data provider based on its config entry.
|
||||
# Utility method to get a data provider based on the class specified in its config entry.
|
||||
def get_provider_from_config(config_providers_entry):
|
||||
match config_providers_entry["type"]:
|
||||
case "POTA":
|
||||
return POTA(config_providers_entry)
|
||||
case "SOTA":
|
||||
return SOTA(config_providers_entry)
|
||||
case "WWFF":
|
||||
return WWFF(config_providers_entry)
|
||||
case "GMA":
|
||||
return GMA(config_providers_entry)
|
||||
case "WWBOTA":
|
||||
return WWBOTA(config_providers_entry)
|
||||
case "HEMA":
|
||||
return HEMA(config_providers_entry)
|
||||
case "ParksNPeaks":
|
||||
return ParksNPeaks(config_providers_entry)
|
||||
case "DXCluster":
|
||||
return DXCluster(config_providers_entry)
|
||||
case "RBN":
|
||||
return RBN(config_providers_entry)
|
||||
case "APRS-IS":
|
||||
return APRSIS(config_providers_entry)
|
||||
return None
|
||||
module = importlib.import_module('providers.' + config_providers_entry["class"].lower())
|
||||
provider_class = getattr(module, config_providers_entry["class"])
|
||||
return provider_class(config_providers_entry)
|
||||
|
||||
|
||||
# Main function
|
||||
|
||||
Reference in New Issue
Block a user