server on /join can be omitted, fixed #1525 Also reorganize various functions in common.py and update CHANGELOG
This commit is contained in:
parent
450c234cd3
commit
33c291c9a9
6 changed files with 73 additions and 35 deletions
|
@ -2,6 +2,12 @@ This file describes the new features in each poezio release.
|
||||||
For more detailed changelog, see the roadmap:
|
For more detailed changelog, see the roadmap:
|
||||||
http://codingteam.net/project/poezio/roadmap
|
http://codingteam.net/project/poezio/roadmap
|
||||||
|
|
||||||
|
* Poezio 0.6.2 - dev
|
||||||
|
- Lines are now broken between words and not in the middle of them
|
||||||
|
- /unquery command
|
||||||
|
- default nickname is now $USER
|
||||||
|
- Server on /join command can be omitted
|
||||||
|
|
||||||
* Poezio 0.6.1 - 13 Jun 2010
|
* Poezio 0.6.1 - 13 Jun 2010
|
||||||
- Enable tracebacks
|
- Enable tracebacks
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,7 @@ import curses
|
||||||
import sys
|
import sys
|
||||||
import select
|
import select
|
||||||
import errno
|
import errno
|
||||||
|
import xmpp
|
||||||
|
|
||||||
def debug(string):
|
def debug(string):
|
||||||
"""
|
"""
|
||||||
|
@ -103,6 +104,57 @@ def is_in_path(command, return_abs_path=False):
|
||||||
pass
|
pass
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def get_stripped_jid(jid):
|
||||||
|
"""
|
||||||
|
Return the stripped JID (bare representation)
|
||||||
|
nick@server/resource -> nick@server
|
||||||
|
"""
|
||||||
|
if isinstance(jid, basestring):
|
||||||
|
jid = xmpp.JID(jid)
|
||||||
|
return jid.getStripped()
|
||||||
|
|
||||||
|
def is_jid(jid):
|
||||||
|
"""
|
||||||
|
Return True if this is a valid JID
|
||||||
|
"""
|
||||||
|
if xmpp.JID(jid).getNode() != '':
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
def jid_get_node(jid):
|
||||||
|
"""
|
||||||
|
nick@server/resource -> nick
|
||||||
|
"""
|
||||||
|
if isinstance(jid, basestring):
|
||||||
|
jid = xmpp.JID(jid)
|
||||||
|
return jid.getNode()
|
||||||
|
|
||||||
|
def jid_get_domain(jid):
|
||||||
|
"""
|
||||||
|
nick@server/resource -> server
|
||||||
|
"""
|
||||||
|
if isinstance(jid, basestring):
|
||||||
|
jid = xmpp.JID(jid)
|
||||||
|
return jid.getDomain()
|
||||||
|
|
||||||
|
def jid_get_resource(jid):
|
||||||
|
"""
|
||||||
|
nick@server/resource -> resource
|
||||||
|
"""
|
||||||
|
if isinstance(jid, basestring):
|
||||||
|
jid = xmpp.JID(jid)
|
||||||
|
return jid.getResource()
|
||||||
|
|
||||||
|
def is_jid_the_same(a, b):
|
||||||
|
"""
|
||||||
|
Compare two bare jids
|
||||||
|
"""
|
||||||
|
if isinstance(a, basestring):
|
||||||
|
a = xmpp.JID(a)
|
||||||
|
if isinstance(b, basestring):
|
||||||
|
b = xmpp.JID(b)
|
||||||
|
return a.bareMatch(b)
|
||||||
|
|
||||||
DISTRO_INFO = {
|
DISTRO_INFO = {
|
||||||
'Arch Linux': '/etc/arch-release',
|
'Arch Linux': '/etc/arch-release',
|
||||||
'Aurox Linux': '/etc/aurox-release',
|
'Aurox Linux': '/etc/aurox-release',
|
||||||
|
|
|
@ -25,12 +25,13 @@ from gettext import (bindtextdomain, textdomain, bind_textdomain_codeset,
|
||||||
gettext as _)
|
gettext as _)
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
import threading
|
||||||
|
|
||||||
import xmpp
|
import xmpp
|
||||||
from config import config
|
from config import config
|
||||||
from logging import logger
|
from logging import logger
|
||||||
from handler import Handler
|
from handler import Handler
|
||||||
import threading
|
from common import jid_get_node, jid_get_domain, is_jid_the_same
|
||||||
|
|
||||||
class Connection(threading.Thread):
|
class Connection(threading.Thread):
|
||||||
"""
|
"""
|
||||||
|
@ -194,20 +195,3 @@ class Connection(threading.Thread):
|
||||||
if not connection:
|
if not connection:
|
||||||
return
|
return
|
||||||
self.handler.emit('send-time', iq_obj=iq)
|
self.handler.emit('send-time', iq_obj=iq)
|
||||||
|
|
||||||
def jid_get_node(jid):
|
|
||||||
if isinstance(jid, basestring):
|
|
||||||
jid = xmpp.JID(jid)
|
|
||||||
return jid.getNode()
|
|
||||||
|
|
||||||
def jid_get_domain(jid):
|
|
||||||
if isinstance(jid, basestring):
|
|
||||||
jid = xmpp.JID(jid)
|
|
||||||
return jid.getDomain()
|
|
||||||
|
|
||||||
def is_jid_the_same(a, b):
|
|
||||||
if isinstance(a, basestring):
|
|
||||||
a = xmpp.JID(a)
|
|
||||||
if isinstance(b, basestring):
|
|
||||||
b = xmpp.JID(b)
|
|
||||||
return a.bareMatch(b)
|
|
||||||
|
|
15
src/gui.py
15
src/gui.py
|
@ -38,7 +38,7 @@ from user import User
|
||||||
from room import Room
|
from room import Room
|
||||||
from message import Message
|
from message import Message
|
||||||
|
|
||||||
from connection import is_jid_the_same
|
from common import is_jid_the_same, jid_get_domain, is_jid
|
||||||
|
|
||||||
def doupdate():
|
def doupdate():
|
||||||
curses.doupdate()
|
curses.doupdate()
|
||||||
|
@ -600,13 +600,18 @@ class Gui(object):
|
||||||
nick = r.own_nick
|
nick = r.own_nick
|
||||||
else:
|
else:
|
||||||
room = info[0]
|
room = info[0]
|
||||||
# if len(room.split('@')) == 1: # no server is provided, like "/join hello"
|
if not is_jid(room): # no server is provided, like "/join hello"
|
||||||
# serv = self.current_room().name.split('/')[0]
|
# use the server of the current room if available
|
||||||
# room += '@' + self.current_room.
|
# check if the current room's name has a server
|
||||||
|
if is_jid(self.current_room().name):
|
||||||
|
room += '@%s' % jid_get_domain(self.current_room().name)
|
||||||
|
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"))
|
||||||
|
return
|
||||||
r = self.get_room_by_name(room)
|
r = self.get_room_by_name(room)
|
||||||
if len(args) == 2: # a password is provided
|
if len(args) == 2: # a password is provided
|
||||||
password = args[1]
|
password = args[1]
|
||||||
if r and r.joined: # if we are already in the room
|
if r and r.joined: # if we are already in the room
|
||||||
self.information(_("already in room [%s]") % room)
|
self.information(_("already in room [%s]") % room)
|
||||||
return
|
return
|
||||||
self.muc.join_room(room, nick, password)
|
self.muc.join_room(room, nick, password)
|
||||||
|
|
|
@ -29,16 +29,8 @@ from time import (altzone, gmtime, localtime, strftime, timezone)
|
||||||
from handler import Handler
|
from handler import Handler
|
||||||
from config import config
|
from config import config
|
||||||
|
|
||||||
def get_stripped_jid(jid):
|
from common import get_stripped_jid
|
||||||
"""Return the stripped JID (bare representation)"""
|
from common import is_jid
|
||||||
if isinstance(jid, basestring):
|
|
||||||
jid = JID(jid)
|
|
||||||
return jid.getStripped()
|
|
||||||
|
|
||||||
def is_jid(jid):
|
|
||||||
"""Return True if this is a valid JID"""
|
|
||||||
if JID(jid).getNode() != '':
|
|
||||||
return True
|
|
||||||
|
|
||||||
class VcardSender(threading.Thread):
|
class VcardSender(threading.Thread):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with Poezio. If not, see <http://www.gnu.org/licenses/>.
|
# along with Poezio. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
from gettext import (bindtextdomain, textdomain, bind_textdomain_codeset,
|
from gettext import (bindtextdomain, textdomain, bind_textdomain_codeset,
|
||||||
gettext as _)
|
gettext as _)
|
||||||
from os.path import isfile
|
from os.path import isfile
|
||||||
|
@ -100,7 +99,7 @@ class UserList(Win):
|
||||||
self.win.addnstr(y, 0, " ", 1)
|
self.win.addnstr(y, 0, " ", 1)
|
||||||
self.win.attroff(curses.color_pair(show_col))
|
self.win.attroff(curses.color_pair(show_col))
|
||||||
self.win.attron(curses.color_pair(role_col))
|
self.win.attron(curses.color_pair(role_col))
|
||||||
self.win.addnstr(y, 1, user.nick, self.width-2)
|
self.win.addnstr(y, 1, user.nick, self.width-1)
|
||||||
self.win.attroff(curses.color_pair(role_col))
|
self.win.attroff(curses.color_pair(role_col))
|
||||||
y += 1
|
y += 1
|
||||||
if y == self.height:
|
if y == self.height:
|
||||||
|
|
Loading…
Reference in a new issue