Log into clusters with a custom callsign/SSID

This commit is contained in:
Ian Renton
2026-01-10 10:06:48 +00:00
parent e1cdc5b857
commit 220c9378cf
2 changed files with 11 additions and 3 deletions

View File

@@ -59,14 +59,22 @@ spot-providers:
enabled: true enabled: true
host: "hrd.wa9pie.net" host: "hrd.wa9pie.net"
port: 8000 port: 8000
# Prompt the cluster node gives when asking for a callsign to log in. Varies between cluster node software.
login_prompt: "login: " login_prompt: "login: "
# Callsign Spothole will use to log into this cluster. Ensure the SSID (e.g. -99) is different to any personal
# connection you might make to this cluster node.
login_callsign: "N0CALL-99"
- -
class: "DXCluster" class: "DXCluster"
name: "W3LPL Cluster" name: "W3LPL Cluster"
enabled: false enabled: false
host: "w3lpl.net" host: "w3lpl.net"
port: 7373 port: 7373
# Prompt the cluster node gives when asking for a callsign to log in. Varies between cluster node software.
login_prompt: "Please enter your call: " login_prompt: "Please enter your call: "
# Callsign Spothole will use to log into this cluster. Ensure the SSID (e.g. -99) is different to any personal
# connection you might make to this cluster node.
login_callsign: "N0CALL-99"
- -
class: "RBN" class: "RBN"
name: "RBN CW/RTTY" name: "RBN CW/RTTY"

View File

@@ -7,12 +7,11 @@ from time import sleep
import pytz import pytz
import telnetlib3 import telnetlib3
from core.config import SERVER_OWNER_CALLSIGN
from data.spot import Spot from data.spot import Spot
from spotproviders.spot_provider import SpotProvider from spotproviders.spot_provider import SpotProvider
# Spot provider for a DX Cluster. Hostname port and login_prompt provided as parameters. # Spot provider for a DX Cluster. Hostname, port, login_prompt and login_callsign are provided in config.
class DXCluster(SpotProvider): class DXCluster(SpotProvider):
# Note the callsign pattern deliberately excludes calls ending in "-#", which are from RBN and can be enabled by # 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. # default on some clusters. If you want RBN spots, there is a separate provider for that.
@@ -28,6 +27,7 @@ class DXCluster(SpotProvider):
self.hostname = provider_config["host"] self.hostname = provider_config["host"]
self.port = provider_config["port"] self.port = provider_config["port"]
self.login_prompt = provider_config["login_prompt"] self.login_prompt = provider_config["login_prompt"]
self.login_callsign = provider_config["login_callsign"]
self.telnet = None self.telnet = None
self.thread = Thread(target=self.handle) self.thread = Thread(target=self.handle)
self.thread.daemon = True self.thread.daemon = True
@@ -50,7 +50,7 @@ class DXCluster(SpotProvider):
logging.info("DX Cluster " + self.hostname + " connecting...") logging.info("DX Cluster " + self.hostname + " connecting...")
self.telnet = telnetlib3.Telnet(self.hostname, self.port) self.telnet = telnetlib3.Telnet(self.hostname, self.port)
self.telnet.read_until(self.login_prompt.encode("latin-1")) self.telnet.read_until(self.login_prompt.encode("latin-1"))
self.telnet.write((SERVER_OWNER_CALLSIGN + "\n").encode("latin-1")) self.telnet.write((self.login_callsign + "\n").encode("latin-1"))
connected = True connected = True
logging.info("DX Cluster " + self.hostname + " connected.") logging.info("DX Cluster " + self.hostname + " connected.")
except Exception as e: except Exception as e: