From cc104f10802721d0a9728f5e55989619c3a4eb1b Mon Sep 17 00:00:00 2001 From: mathieui Date: Sun, 24 Feb 2019 15:47:51 +0100 Subject: Only server-cycle on exact server matches (#3412) --- poezio/core/commands.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'poezio/core') diff --git a/poezio/core/commands.py b/poezio/core/commands.py index 2cb2b291..fd6279ec 100644 --- a/poezio/core/commands.py +++ b/poezio/core/commands.py @@ -9,6 +9,7 @@ log = logging.getLogger(__name__) import asyncio from xml.etree import cElementTree as ET +from slixmpp import JID, InvalidJID from slixmpp.exceptions import XMPPError from slixmpp.xmlstream.xmlstream import NotConnectedError from slixmpp.xmlstream.stanzabase import StanzaBase @@ -632,12 +633,18 @@ class CommandCore: def server_cycle(self, args): """ Do a /cycle on each room of the given server. - If none, do it on the current tab + If none, do it on the server of the current tab """ tab = self.core.tabs.current_tab message = "" if args: - domain = args[0] + try: + domain = JID(args[0]).domain + except InvalidJID: + return self.core.information( + "Invalid server domain: %s" % args[0], + "Error" + ) if len(args) == 2: message = args[1] else: @@ -646,7 +653,7 @@ class CommandCore: else: return self.core.information("No server specified", "Error") for tab in self.core.get_tabs(tabs.MucTab): - if tab.name.endswith(domain): + if JID(tab.name).domain == domain: tab.leave_room(message) tab.join() -- cgit v1.2.3