summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormathieui <mathieui@mathieui.net>2013-06-05 20:44:27 +0200
committermathieui <mathieui@mathieui.net>2013-06-05 20:44:27 +0200
commit9e8860cd6abae3c41af085fc940853653f1ee9d6 (patch)
tree1dc16c6fe59860bc8473aa4fe66442ce861d7709
parentae009318b2faa4b5f043b6f87353de7123a43409 (diff)
downloadpoezio-9e8860cd6abae3c41af085fc940853653f1ee9d6.tar.gz
poezio-9e8860cd6abae3c41af085fc940853653f1ee9d6.tar.bz2
poezio-9e8860cd6abae3c41af085fc940853653f1ee9d6.tar.xz
poezio-9e8860cd6abae3c41af085fc940853653f1ee9d6.zip
Fix joining a domain-only room
(e.g. “/join @conference.prosody.im”) - If the current tab is a MUC the @ prefix is mandatory as there is no way to tell if the user meant a room name or a domain. - If it is not a MUC, then the @ prefix is not mandatory (but works anyway)
-rw-r--r--src/core.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/core.py b/src/core.py
index 40661e89..a77868cb 100644
--- a/src/core.py
+++ b/src/core.py
@@ -1684,7 +1684,12 @@ class Core(object):
room = safeJID(tab.get_name()).bare
nick = tab.own_nick
else:
- info = safeJID(args[0])
+ if args[0].startswith('@'): # we try to join a server directly
+ server_root = True
+ info = safeJID(args[0][1:])
+ else:
+ info = safeJID(args[0])
+ server_root = False
if info == '' and len(args[0]) > 1 and args[0][0] == '/':
nick = args[0][1:]
elif info.resource == '':
@@ -1703,15 +1708,14 @@ class Core(object):
nick = tab.own_nick
else:
room = info.bare
- if room.find('@') == -1: # no server is provided, like "/join hello"
+ if room.find('@') == -1 and not server_root: # no server is provided, like "/join hello"
# use the server of the current room if available
# check if the current room's name has a server
if isinstance(self.current_tab(), tabs.MucTab) and\
self.current_tab().get_name().find('@') != -1:
room += '@%s' % safeJID(self.current_tab().get_name()).domain
- else: # no server could be found, print a message and return
- self.information(_("You didn't specify a server for the room you want to join"), 'Error')
- return
+ else:
+ room = args[0]
room = room.lower()
if room in self.pending_invites:
del self.pending_invites[room]