# HG changeset patch # User Goffi # Date 1265205996 -39600 # Node ID 0e50dd3a234a7011936d06e30b9463826f886aa5 # Parent 8147b4f408095d07eb55f6f6796fc15f763ca4ee message sending bug fixes + sortilege update - sortilege now use default profile. /!\ sortilege is really buggy currently, need some attention diff -r 8147b4f40809 -r 0e50dd3a234a frontends/quick_frontend/quick_chat.py --- a/frontends/quick_frontend/quick_chat.py Wed Feb 03 23:35:57 2010 +1100 +++ b/frontends/quick_frontend/quick_chat.py Thu Feb 04 01:06:36 2010 +1100 @@ -30,18 +30,18 @@ self.to_jid = to_jid self.host = host - def historyPrint(self, size=20, keep_last=False): + def historyPrint(self, size=20, keep_last=False, profile='@NONE@'): """Print the initial history""" debug ("now we print history") - history=self.host.bridge.getHistory(self.host.whoami.short, self.to_jid, 20) + history=self.host.bridge.getHistory(self.host.profiles[profile]['whoami'].short, self.to_jid, 20) stamps=history.keys() stamps.sort() for stamp in stamps: - self.printMessage(JID(history[stamp][0]), history[stamp][1], stamp) + self.printMessage(JID(history[stamp][0]), history[stamp][1], profile, stamp) if keep_last: ##FIXME hack for sortilege self.last_history = stamps[-1] if stamps else None - def printMessage(self, from_jid, msg, timestamp): + def printMessage(self, from_jid, msg, profile, timestamp): """Print message in chat window. Must be implemented by child class""" raise NotImplementedError diff -r 8147b4f40809 -r 0e50dd3a234a frontends/sat_bridge_frontend/DBus.py --- a/frontends/sat_bridge_frontend/DBus.py Wed Feb 03 23:35:57 2010 +1100 +++ b/frontends/sat_bridge_frontend/DBus.py Thu Feb 04 01:06:36 2010 +1100 @@ -67,8 +67,8 @@ def getWaitingSub(self, profile_key='@DEFAULT@'): return self.db_comm_iface.getWaitingSub(profile_key) - def sendMessage(self, to, message, profile_key='@DEFAULT@'): - return self.db_comm_iface.sendMessage(to, message, profile_key) + def sendMessage(self, to, message, type='chat', profile_key='@DEFAULT@'): + return self.db_comm_iface.sendMessage(to, message, type, profile_key) def setPresence(self, to="", show="", priority=0, statuses={}, profile_key='@DEFAULT@'): return self.db_comm_iface.setPresence(to, show, priority, statuses, profile_key) diff -r 8147b4f40809 -r 0e50dd3a234a frontends/sortilege/chat.py --- a/frontends/sortilege/chat.py Wed Feb 03 23:35:57 2010 +1100 +++ b/frontends/sortilege/chat.py Thu Feb 04 01:06:36 2010 +1100 @@ -48,7 +48,7 @@ Window.__init__(self, self.__parent, self.__parent.getmaxyx()[0]-2, self.__parent.getmaxyx()[1]-30, 0,30, code=host.code) #history - self.historyPrint(50, True) + self.historyPrint(50, True, profile=self.host.profile) self.hide() @@ -68,7 +68,7 @@ if self.host.chatParams["timestamp"]: header = header + '[%s] ' % strftime("%H:%M", localtime(float(line[0]))) if self.host.chatParams['short_nick']: - header = header + ('> ' if line[1]==self.host.whoami.short else '** ') + header = header + ('> ' if line[1]==self.host.profiles[self.host.profile]['whoami'] else '** ') else: header = header + '<%s> ' % line[1] return header @@ -85,7 +85,7 @@ header=self.__getHeader(self.content[idx]) msg=self.content[idx][2] part=0 #part of the text - if JID(self.content[idx][1]).short==self.host.whoami.short: + if JID(self.content[idx][1]).short==self.host.profiles[self.host.profile]['whoami'].short: att_header=curses.color_pair(1) else: att_header=curses.color_pair(2) @@ -137,7 +137,7 @@ self.__scollIdx = self.__scollIdx - 1 self.update() - def printMessage(self, jid, msg, timestamp=""): + def printMessage(self, jid, msg, profile, timestamp=""): if timestamp=="": current_time=time() timestamp=str(current_time) diff -r 8147b4f40809 -r 0e50dd3a234a frontends/sortilege/sortilege --- a/frontends/sortilege/sortilege Wed Feb 03 23:35:57 2010 +1100 +++ b/frontends/sortilege/sortilege Thu Feb 04 01:06:36 2010 +1100 @@ -222,6 +222,7 @@ self.chat_wins=ChatList(self) QuickApp.__init__(self) #XXX: yes it's an unusual place for the constructor of a parent class, but the init order is important + self.plug_profile() signal (SIGWINCH, self.onResize) #we manage SIGWINCH ourselves, because the loop is not called otherwise @@ -271,8 +272,8 @@ def onTextEntered(self, text): - jid=JID(self.whoami) - self.bridge.sendMessage(self.currentChat, text) + jid=JID(self.profiles[self.profile]['whoami']) + self.bridge.sendMessage(self.currentChat, text, profile_key=self.profile) def showDialog(self, message, title, type="info"): if type==question: @@ -280,8 +281,8 @@ pass - def presenceUpdate(self, jabber_id, show, priority, statuses): - QuickApp.presenceUpdate(self, jabber_id, show, priority, statuses) + def presenceUpdate(self, jabber_id, show, priority, statuses, profile): + QuickApp.presenceUpdate(self, jabber_id, show, priority, statuses, profile) self.editBar.replace_cur() curses.doupdate() @@ -293,8 +294,8 @@ #FIXME info ("FIXME: actionResult not implemented") - def newMessage(self, from_jid, msg, type, to_jid): - QuickApp.newMessage(self, from_jid, msg, type, to_jid) + def newMessage(self, from_jid, msg, type, to_jid, profile): + QuickApp.newMessage(self, from_jid, msg, type, to_jid, profile) sender=JID(from_jid) addr=JID(to_jid) win = addr if sender.short == self.whoami.short else sender #FIXME: duplicate code with QuickApp diff -r 8147b4f40809 -r 0e50dd3a234a frontends/wix/chat.py --- a/frontends/wix/chat.py Wed Feb 03 23:35:57 2010 +1100 +++ b/frontends/wix/chat.py Thu Feb 04 01:06:36 2010 +1100 @@ -56,7 +56,7 @@ self.font["points"] = self.chatWindow.GetFont().GetPointSize() self.font["family"] = self.chatWindow.GetFont().GetFamily() - self.historyPrint() + self.historyPrint(profile=self.host.profile) #misc self.textBox.SetFocus() @@ -87,7 +87,7 @@ def onEnterPressed(self, event): """Behaviour when enter pressed in send line.""" - self.host.bridge.sendMessage(self.to_jid, event.GetString()) + self.host.bridge.sendMessage(self.to_jid, event.GetString(), profile_key=self.host.profile) self.textBox.Clear() diff -r 8147b4f40809 -r 0e50dd3a234a frontends/wix/main_window.py --- a/frontends/wix/main_window.py Wed Feb 03 23:35:57 2010 +1100 +++ b/frontends/wix/main_window.py Thu Feb 04 01:06:36 2010 +1100 @@ -290,8 +290,8 @@ wx.EVT_MENU(self, idFIND_GATEWAYS, self.onFindGateways) - def newMessage(self, from_jid, msg, type, to_jid): - QuickApp.newMessage(self, from_jid, msg, type, to_jid) + def newMessage(self, from_jid, msg, type, to_jid, profile): + QuickApp.newMessage(self, from_jid, msg, type, to_jid, profile) def showAlert(self, message): # TODO: place this in a separate class diff -r 8147b4f40809 -r 0e50dd3a234a sat.tac --- a/sat.tac Wed Feb 03 23:35:57 2010 +1100 +++ b/sat.tac Thu Feb 04 01:06:36 2010 +1100 @@ -125,7 +125,8 @@ debug (u"got_message from: %s", message["from"]) for e in message.elements(): if e.name == "body": - self.host.bridge.newMessage(message["from"], e.children[0], self.parent.profile) + type = message['type'] if message.hasAttribute('type') else 'chat' #FIXME: check specs + self.host.bridge.newMessage(message["from"], e.children[0], type, profile=self.parent.profile) self.host.memory.addToHistory(self.parent.jid, jid.JID(message["from"]), self.parent.jid, "chat", e.children[0]) break @@ -573,6 +574,7 @@ ## jabber methods ## def sendMessage(self,to,msg,type='chat', profile_key='@DEFAULT@'): + print "sendtype=", type #gof #FIXME: check validity of recipient profile = self.memory.getProfileName(profile_key) assert(profile) @@ -585,7 +587,7 @@ message.addElement("body", "jabber:client", msg) self.profiles[profile].xmlstream.send(message) self.memory.addToHistory(current_jid, current_jid, jid.JID(to), message["type"], unicode(msg)) - self.bridge.newMessage(message['from'], unicode(msg), to=message['to'], profile=profile) #We send back the message, so all clients are aware of it + self.bridge.newMessage(message['from'], unicode(msg), to=message['to'], type=type, profile=profile) #We send back the message, so all clients are aware of it def setPresence(self, to="", show="", priority = 0, statuses={}, profile_key='@DEFAULT@'): diff -r 8147b4f40809 -r 0e50dd3a234a sat_bridge/DBus.py --- a/sat_bridge/DBus.py Wed Feb 03 23:35:57 2010 +1100 +++ b/sat_bridge/DBus.py Thu Feb 04 01:06:36 2010 +1100 @@ -60,7 +60,7 @@ @dbus.service.signal(const_INT_PREFIX+const_COMM_SUFFIX, signature='sssss') - def newMessage(self, from_jid, msg, type='chat', to='', profile='@NONE@'): + def newMessage(self, from_jid, msg, type, to, profile): debug("new message signal (from:%s msg:%s type:%s to:%s) sended", from_jid, msg, type, to) @dbus.service.signal(const_INT_PREFIX+const_COMM_SUFFIX, @@ -165,10 +165,11 @@ return self.cb["getWaitingSub"](profile_key) @dbus.service.method(const_INT_PREFIX+const_COMM_SUFFIX, - in_signature='sss', out_signature='') - def sendMessage(self, to, message, profile_key='@DEFAULT@'): + in_signature='ssss', out_signature='') + def sendMessage(self, to, message, type='chat', profile_key='@DEFAULT@'): debug("sendMessage...") - self.cb["sendMessage"](to, message, profile_key) + print "sendtype=", type #gof + self.cb["sendMessage"](to, message, type, profile_key) @dbus.service.method(const_INT_PREFIX+const_COMM_SUFFIX, in_signature='ssia{ss}s', out_signature='') @@ -293,7 +294,7 @@ def newContact(self, contact, attributes, groups, profile): self.dbus_bridge.newContact(contact, attributes, groups, profile) - def newMessage(self,from_jid, msg, type, to, profile): + def newMessage(self, from_jid, msg, type='chat', to='', profile='@NONE@'): debug("sending message...") self.dbus_bridge.newMessage(from_jid, msg, type, to, profile)