Commit 4d7a19da authored by Maxime Buquet's avatar Maxime Buquet

Merge branch 'safejid-foo' into 'master'

Safejid foo

See merge request poezio/poezio!50
parents d65ad614 f157a46b
...@@ -2,13 +2,10 @@ ...@@ -2,13 +2,10 @@
Global commands which are to be linked to the Core class Global commands which are to be linked to the Core class
""" """
import logging
log = logging.getLogger(__name__)
import asyncio import asyncio
from xml.etree import cElementTree as ET from xml.etree import cElementTree as ET
from typing import List, Optional, Tuple from typing import List, Optional, Tuple
import logging
from slixmpp import JID, InvalidJID from slixmpp import JID, InvalidJID
from slixmpp.exceptions import XMPPError from slixmpp.exceptions import XMPPError
...@@ -25,15 +22,16 @@ from poezio.common import safeJID ...@@ -25,15 +22,16 @@ from poezio.common import safeJID
from poezio.config import config, DEFAULT_CONFIG, options as config_opts from poezio.config import config, DEFAULT_CONFIG, options as config_opts
from poezio import multiuserchat as muc from poezio import multiuserchat as muc
from poezio.contact import Contact from poezio.contact import Contact
from poezio import windows
from poezio.plugin import PluginConfig from poezio.plugin import PluginConfig
from poezio.roster import roster from poezio.roster import roster
from poezio.theming import dump_tuple, get_theme from poezio.theming import dump_tuple, get_theme
from poezio.decorators import command_args_parser from poezio.decorators import command_args_parser
from poezio.core.structs import Command, POSSIBLE_SHOW from poezio.core.structs import Command, POSSIBLE_SHOW
log = logging.getLogger(__name__)
class CommandCore: class CommandCore:
def __init__(self, core): def __init__(self, core):
self.core = core self.core = core
...@@ -940,19 +938,25 @@ class CommandCore: ...@@ -940,19 +938,25 @@ class CommandCore:
"disconnected", self.core.exit, disposable=True) "disconnected", self.core.exit, disposable=True)
@command_args_parser.quoted(0, 1, ['']) @command_args_parser.quoted(0, 1, [''])
def destroy_room(self, args): def destroy_room(self, args: List[str]) -> None:
""" """
/destroy_room [JID] /destroy_room [JID]
""" """
room = safeJID(args[0]).bare if not args[0] and isinstance(self.core.tabs.current_tab, tabs.MucTab):
if room:
muc.destroy_room(self.core.xmpp, room)
elif isinstance(self.core.tabs.current_tab,
tabs.MucTab) and not args[0]:
muc.destroy_room(self.core.xmpp, muc.destroy_room(self.core.xmpp,
self.core.tabs.current_tab.general_jid) self.core.tabs.current_tab.general_jid)
else: return None
self.core.information('Invalid JID: "%s"' % args[0], 'Error')
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, ['']) @command_args_parser.quoted(1, 1, [''])
def bind(self, args): def bind(self, args):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment