changeset 1290feb6745c in /home/hg/repos/gajim

details:http://hg.gajim.org/gajim?cmd=changeset;node=1290feb6745c
description: do not duplicate messages in the room when the connection is lost

diffstat:

 src/common/connection.py |  7 ++++++-
 src/groupchat_control.py |  4 ++--
 2 files changed, 8 insertions(+), 3 deletions(-)

diffs (45 lines):

diff -r e6fe13f2bfbd -r 1290feb6745c src/common/connection.py
--- a/src/common/connection.py  Wed Feb 22 10:34:15 2012 +0100
+++ b/src/common/connection.py  Sat Feb 18 22:48:03 2012 +0400
@@ -2316,7 +2316,8 @@
                 room_id=resp.getTag('unique').getData()))
         self.connection.SendAndCallForResponse(iq, _on_response)
 
-    def join_gc(self, nick, room_jid, password, change_nick=False):
+    def join_gc(self, nick, room_jid, password, change_nick=False,
+    rejoin=False):
         # FIXME: This room JID needs to be normalized; see #1364
         if not gajim.account_is_connected(self.name):
             return
@@ -2365,6 +2366,10 @@
                 last_date = time.strftime('%Y-%m-%dT%H:%M:%SZ', time.gmtime(
                     last_date))
                 tags['since'] = last_date
+                if rejoin:
+                    tags['since'] = time.strftime('%Y-%m-%dT%H:%M:%SZ',
+                    time.gmtime(gajim.logger.get_last_date_that_has_logs(
+                    room_jid, is_room=True) + 1))
             nb = gajim.config.get('muc_restore_lines')
             if nb >= 0:
                 tags['maxstanzas'] = nb
diff -r e6fe13f2bfbd -r 1290feb6745c src/groupchat_control.py
--- a/src/groupchat_control.py  Wed Feb 22 10:34:15 2012 +0100
+++ b/src/groupchat_control.py  Sat Feb 18 22:48:03 2012 +0400
@@ -1274,7 +1274,7 @@
         gajim.gc_connected[obj.conn.name][self.room_jid]:
             return
         password = gajim.gc_passwords.get(self.room_jid, '')
-        obj.conn.join_gc(self.nick, self.room_jid, password)
+        obj.conn.join_gc(self.nick, self.room_jid, password, rejoin=True)
 
     def _nec_decrypted_message_received(self, obj):
         if obj.conn.name != self.account:
@@ -1351,7 +1351,7 @@
             return False
         password = gajim.gc_passwords.get(self.room_jid, '')
         gajim.connections[self.account].join_gc(self.nick, self.room_jid,
-            password)
+            password, rejoin=True)
         return True
 
     def draw_roster(self):
_______________________________________________
Commits mailing list
Commits@gajim.org
http://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to