diff --git a/config-example.yml b/config-example.yml index 448394e..341f3ab 100644 --- a/config-example.yml +++ b/config-example.yml @@ -47,10 +47,18 @@ spot-providers: enabled: false - class: "DXCluster" - name: "Cluster" + name: "HRD Cluster" enabled: true host: "hrd.wa9pie.net" port: 8000 + login_prompt: "login: " + - + class: "DXCluster" + name: "W3LPL Cluster" + enabled: true + host: "w3lpl.net" + port: 7373 + login_prompt: "Please enter your call: " - class: "RBN" name: "RBN CW/RTTY" diff --git a/spotproviders/dxcluster.py b/spotproviders/dxcluster.py index 54fd092..3c6fd11 100644 --- a/spotproviders/dxcluster.py +++ b/spotproviders/dxcluster.py @@ -12,8 +12,10 @@ from core.config import SERVER_OWNER_CALLSIGN from spotproviders.spot_provider import SpotProvider -# Spot provider for a DX Cluster. Hostname and port provided as parameters. +# Spot provider for a DX Cluster. Hostname port and login_prompt provided as parameters. class DXCluster(SpotProvider): + # Note the callsign pattern deliberately excludes calls ending in "-#", which are from RBN and can be enabled by + # default on some clusters. If you want RBN spots, there is a separate provider for that. CALLSIGN_PATTERN = "([a-z|0-9|/]+)" FREQUENCY_PATTERM = "([0-9|.]+)" LINE_PATTERN = re.compile( @@ -25,6 +27,7 @@ class DXCluster(SpotProvider): super().__init__(provider_config) self.hostname = provider_config["host"] self.port = provider_config["port"] + self.login_prompt = provider_config["login_prompt"] self.telnet = None self.thread = Thread(target=self.handle) self.thread.daemon = True @@ -46,7 +49,7 @@ class DXCluster(SpotProvider): self.status = "Connecting" logging.info("DX Cluster " + self.hostname + " connecting...") self.telnet = telnetlib3.Telnet(self.hostname, self.port) - self.telnet.read_until("login: ".encode("latin-1")) + self.telnet.read_until(self.login_prompt.encode("latin-1")) self.telnet.write((SERVER_OWNER_CALLSIGN + "\n").encode("latin-1")) connected = True logging.info("DX Cluster " + self.hostname + " connected.")