Support for clusters with different login strings

This commit is contained in:
Ian Renton
2025-10-08 05:35:27 +01:00
parent 1a165e3d3a
commit d33fd6cd79
2 changed files with 14 additions and 3 deletions

View File

@@ -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.")