From f244749293a922b3ddcdd1a221104eec420964de Mon Sep 17 00:00:00 2001 From: cottongin Date: Thu, 12 Mar 2026 08:01:11 -0400 Subject: [PATCH] fix: auto-normalize http(s) URLs to ws(s) in bot plugins Users behind reverse proxies naturally configure https:// URLs. The websocket-client library requires ws:// or wss:// schemes. Both plugins now auto-convert before connecting. Made-with: Cursor --- plugins/limnoria/NtrPlaylist/plugin.py | 4 ++++ plugins/sopel/ntr_playlist.py | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/plugins/limnoria/NtrPlaylist/plugin.py b/plugins/limnoria/NtrPlaylist/plugin.py index f29dd3b..640fe66 100644 --- a/plugins/limnoria/NtrPlaylist/plugin.py +++ b/plugins/limnoria/NtrPlaylist/plugin.py @@ -143,6 +143,10 @@ class NtrPlaylist(callbacks.Plugin): while not self._ws_stop.is_set(): ws_url = self.registryValue("wsUrl") + if ws_url.startswith("https://"): + ws_url = "wss://" + ws_url[8:] + elif ws_url.startswith("http://"): + ws_url = "ws://" + ws_url[7:] token = self.registryValue("adminToken") channel = self.registryValue("announceChannel") client_id = self.registryValue("clientId") or "limnoria" diff --git a/plugins/sopel/ntr_playlist.py b/plugins/sopel/ntr_playlist.py index c6b94fe..4fb3d72 100644 --- a/plugins/sopel/ntr_playlist.py +++ b/plugins/sopel/ntr_playlist.py @@ -54,6 +54,10 @@ def _ws_listener(bot): while not _ws_stop.is_set(): ws_url = bot.settings.ntr_playlist.ws_url + if ws_url.startswith("https://"): + ws_url = "wss://" + ws_url[8:] + elif ws_url.startswith("http://"): + ws_url = "ws://" + ws_url[7:] token = bot.settings.ntr_playlist.admin_token channel = bot.settings.ntr_playlist.announce_channel client_id = bot.settings.ntr_playlist.client_id or "sopel"