summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxime Buquet <pep@bouah.net>2019-11-21 03:01:37 +0100
committerMaxime Buquet <pep@bouah.net>2019-11-21 03:01:37 +0100
commit4d7a19da81d0bb7e8f4e342a5ea39b9a00b26369 (patch)
tree472db41751f82e264e3227821a10e11c4d3b970a
parentd65ad614b3b067b673f5782b454d779a2da829e7 (diff)
parentf157a46bd64484a9cc98456aba71d1981f715b18 (diff)
downloadpoezio-4d7a19da81d0bb7e8f4e342a5ea39b9a00b26369.tar.gz
poezio-4d7a19da81d0bb7e8f4e342a5ea39b9a00b26369.tar.bz2
poezio-4d7a19da81d0bb7e8f4e342a5ea39b9a00b26369.tar.xz
poezio-4d7a19da81d0bb7e8f4e342a5ea39b9a00b26369.zip
Merge branch 'safejid-foo' into 'master'
Safejid foo See merge request poezio/poezio!50
-rw-r--r--poezio/core/commands.py32
1 files changed, 18 insertions, 14 deletions
diff --git a/poezio/core/commands.py b/poezio/core/commands.py
index 08e49898..33bd3ecf 100644
--- a/poezio/core/commands.py
+++ b/poezio/core/commands.py
@@ -2,13 +2,10 @@
Global commands which are to be linked to the Core class
"""
-import logging
-
-log = logging.getLogger(__name__)
-
import asyncio
from xml.etree import cElementTree as ET
from typing import List, Optional, Tuple
+import logging
from slixmpp import JID, InvalidJID
from slixmpp.exceptions import XMPPError
@@ -25,15 +22,16 @@ from poezio.common import safeJID
from poezio.config import config, DEFAULT_CONFIG, options as config_opts
from poezio import multiuserchat as muc
from poezio.contact import Contact
-from poezio import windows
from poezio.plugin import PluginConfig
from poezio.roster import roster
from poezio.theming import dump_tuple, get_theme
from poezio.decorators import command_args_parser
-
from poezio.core.structs import Command, POSSIBLE_SHOW
+log = logging.getLogger(__name__)
+
+
class CommandCore:
def __init__(self, core):
self.core = core
@@ -940,19 +938,25 @@ class CommandCore:
"disconnected", self.core.exit, disposable=True)
@command_args_parser.quoted(0, 1, [''])
- def destroy_room(self, args):
+ def destroy_room(self, args: List[str]) -> None:
"""
/destroy_room [JID]
"""
- room = safeJID(args[0]).bare
- if room:
- muc.destroy_room(self.core.xmpp, room)
- elif isinstance(self.core.tabs.current_tab,
- tabs.MucTab) and not args[0]:
+ if not args[0] and isinstance(self.core.tabs.current_tab, tabs.MucTab):
muc.destroy_room(self.core.xmpp,
self.core.tabs.current_tab.general_jid)
- else:
- self.core.information('Invalid JID: "%s"' % args[0], 'Error')
+ return None
+
+ try:
+ room = JID(args[0]).bare
+ if room:
+ muc.destroy_room(self.core.xmpp, room)
+ return None
+ except InvalidJID:
+ pass
+
+ self.core.information('Invalid JID: "%s"' % args[0], 'Error')
+ return None
@command_args_parser.quoted(1, 1, [''])
def bind(self, args):