diff --git a/common/hub.py b/common/hub.py index ec058b8ed..b556d89ff 100644 --- a/common/hub.py +++ b/common/hub.py @@ -28,7 +28,7 @@ class GajimHub: def __init__(self): self.queues = {} """ {event1:[queue1, queue2]} """ - self.events = {'NOTIFY':[], 'MSG':[], 'ROSTER':[]} + self.events = {} self.queueIn = self.newQueue('in', 100) # END __init__ @@ -49,7 +49,10 @@ class GajimHub: def register(self, name, event): """ Records a plugin from an event """ qu = self.queues[name] - self.events[event].append(qu) + if self.events.has_key(event) : + self.events[event].append(qu) + else : + self.events[event] = [qu] # END register def sendPlugin(self, event, data): diff --git a/common/jabber.py b/common/jabber.py index 515c23756..943f925f1 100644 --- a/common/jabber.py +++ b/common/jabber.py @@ -62,7 +62,7 @@ An example of usage for a simple client would be ( only psuedo code !) """ -# $Id: jabber.py,v 1.30 2003/02/20 10:22:33 shire Exp $ +# $Id: jabber.py,v 1.1.1.1 2003/10/22 18:45:18 tab Exp $ import xmlstream import sha, time @@ -722,12 +722,16 @@ class Client(Connection): """ iq = Iq(type='set') item = iq.setQuery(NS_ROSTER).insertTag('item') - item.putAtrr('jid', str(jid)) - if name != None: item.putAtrr('name', name) + item.putAttr('jid', str(jid)) + if name != None: item.putAttr('name', name) if groups != None: for group in groups: item.insertTag('group').insertData(group) - dummy = self.sendAndWaitForResponse(iq) # Do we need to wait?? + ID = self.getAnID() + iq.setID(ID) + ID = str(ID) + self.send(iq) +# dummy = self.SendAndWaitForResponse(iq) # Do we need to wait?? def removeRosterItem(self,jid): diff --git a/core/core.py b/core/core.py index 49b0d5f2c..f9ab322a7 100644 --- a/core/core.py +++ b/core/core.py @@ -70,6 +70,7 @@ class GajimCore: jid = prs.getFrom() self.hub.sendPlugin('SUBSCRIBED', {'jid':jid.getBasic(), \ 'nom':jid.getNode()}) + self.con.updateRosterItem(jid=jid.getBasic(), name=jid.getNode()) log.debug("we are now subscribed to %s" % who) elif type == 'unsubscribe': log.debug("unsubscribe request from %s" % who) @@ -81,7 +82,7 @@ class GajimCore: def disconnectedCB(self, con): log.debug("disconnectedCB") # END disconenctedCB - + def connect(self): self.con = common.jabber.Client(host = \ self.cfgParser.Server_hostname, \ @@ -103,24 +104,7 @@ class GajimCore: self.con.requestRoster() roster = self.con.getRoster().getRaw() - for jid in roster.keys(): - if not roster[jid]['show']: - roster[jid]['show'] = roster[jid]['online'] - if not roster[jid]['name']: - roster[jid]['name'] = '' self.hub.sendPlugin('ROSTER', roster) -# tab_roster = {} -# for jid in roster.getJIDs(): -# if roster.getShow(jid): -# show = roster.getShow(jid) -# else: -# show = roster.getOnline(jid) -# tab_roster[jid.getBasic()] = \ -# {"Online":roster.getOnline(jid), "nom":jid.getNode(), \ -# "server":jid.getDomain(), "resource":jid.getResource(), \ -# "group":'general', "status":roster.getStatus(jid), \ -# "show":show} -# self.hub.sendPlugin('ROSTER', tab_roster) self.con.sendInitPresence() self.connected = 1 else: @@ -180,5 +164,6 @@ def start(): gc.hub.register('gtkgui', 'ROSTER') gc.hub.register('gtkgui', 'NOTIFY') gc.hub.register('gtkgui', 'MSG') + gc.hub.register('gtkgui', 'SUBSCRIBED') guiPl.load () gc.mainLoop() diff --git a/plugins/gtkgui.glade b/plugins/gtkgui.glade index aa7e330aa..91dd04b9c 100644 --- a/plugins/gtkgui.glade +++ b/plugins/gtkgui.glade @@ -1382,7 +1382,7 @@ David Ferlier (david@yazzy.org) True True GTK_JUSTIFY_LEFT - GTK_WRAP_NONE + GTK_WRAP_WORD True 0 0 diff --git a/plugins/gtkgui.py b/plugins/gtkgui.py index 0074c0b72..d5b039194 100644 --- a/plugins/gtkgui.py +++ b/plugins/gtkgui.py @@ -161,7 +161,13 @@ class roster: """ l_group = {name:iter} """ self.l_group = {} for jid in tab.keys(): - user1 = user(jid, tab[jid]['name'], tab[jid]['groups'], tab[jid]['show'], tab[jid]['status'], tab[jid]['sub']) + name = tab[jid]['name'] + if not name : + name = '' + show = tab[jid]['show'] + if not show : + show = 'offline' + user1 = user(jid, name, tab[jid]['groups'], show, tab[jid]['status'], tab[jid]['sub']) self.l_contact[user1.jid] = {'user':user1, 'iter':[]} if user1.groups == []: user1.groups.append('general')