Current directory :
Root directory

Tree directory :
sef@njs.netlab.cz
  Filter :
  Language :  
 
Index: pyxl/client.py
===================================================================
--- pyxl/client.py	(revision 2895)
+++ pyxl/client.py	(working copy)
@@ -17,7 +17,7 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 """
-import sys, time, random, os
+import sys, time, random, os, re
 import socks5, events, base64
 from twisted import names
 from twisted.python import log
@@ -36,6 +36,7 @@
 from twisted.internet.protocol import Protocol, ClientFactory, Factory
 from twisted.protocols import socks
 from twisted.internet.task import LoopingCall
+from calendar import timegm
 
 
 from derived import derived
@@ -935,10 +936,23 @@
 				except:
 					pass #proste user neni v rosteru, nebo je to muc, nebo cojavim ;)
 			if child.name == 'delay':
-				delay = child['stamp']
+				# xep-0203:
+				#  The format MUST adhere to the dateTime format specified in XEP-0082
+				#  and MUST be expressed in UTC.
+				stamp = child.getAttribute('stamp')
+				m = re.match(r'(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)(\.\d+)?Z', stamp)
+				if m:
+					delay = timegm( map(int, m.groups()[0:6]) + [0,0,0] )
 			if child.name == 'x':
 				if child.defaultUri == 'jabber:x:delay' :
-					delay = child.getAttribute('stamp')
+					# xep-0091:
+					#   The format SHOULD be "CCYYMMDDThh:mm:ss"
+					#   ... not the format defined in XEP-0082.
+					#   The timezone is be understood as UTC.
+					stamp = child.getAttribute('stamp')
+					m = re.match(r'(\d\d\d\d)(\d\d)(\d\d)T(\d\d):(\d\d):(\d\d)', stamp)
+					if m:
+						delay = timegm( map(int, m.groups()[0:6]) + [0,0,0] )
 				if child.defaultUri == 'jabber:x:event':
 					elm = child.firstChildElement()
 					if elm:
Index: jabbim.py
===================================================================
--- jabbim.py	(revision 2895)
+++ jabbim.py	(working copy)
@@ -1202,11 +1202,10 @@
 
 			# prepare message to be showed
 			if unicode(body).startswith("/me"):
-				if delay==None or len(delay)==0:
+				if delay==None:
 					message=self.main.skin["me_message"].replace("[time]",self.main.now()).replace("[user]",unicode(user).replace("<","&lt;").replace(">","&gt;").replace("\n","<br/> ")).replace("[message]",message[3:])
 				else:
-					delay=unicode(delay)
-					delay="%s-%s-%s&nbsp;%s:%s:%s" % (delay[0:4],delay[4:6],delay[6:8],delay[9:11],delay[12:14],delay[15:17])
+					delay=time.strftime('%Y-%m-%d&nbsp;%H:%M:%S', time.localtime(delay))
 					message=self.main.skin["me_message"].replace("[time]",delay).replace("[user]",unicode(user).replace("<","&lt;").replace(">","&gt;").replace("\n","<br/> ")).replace("[message]",message[3:])
 			else:
 				skin=self.main.skin["message"]
@@ -1214,11 +1213,10 @@
 					if tab.chat.lastMessageFrom==unicode(user):
 						if self.main.skin.has_key('message_continue'):
 							skin=self.main.skin["message_continue"]
-				if delay==None or len(delay)==0:
+				if delay==None:
 					message=skin.replace("[time]",self.main.now()).replace("[user]",unicode(user).replace("<","&lt;").replace(">","&gt;").replace("\n","<br/> ")).replace("[message]",message)
 				else:
-					delay=unicode(delay)
-					delay="%s-%s-%s&nbsp;%s:%s:%s" % (delay[0:4],delay[4:6],delay[6:8],delay[9:11],delay[12:14],delay[15:17])
+					delay=time.strftime('%Y-%m-%d&nbsp;%H:%M:%S', time.localtime(delay))
 					message=skin.replace("[time]",delay).replace("[user]",unicode(user).replace("<","&lt;").replace(">","&gt;").replace("\n","<br/> ")).replace("[message]",message)
 			colors=self.main.getSkinColors(0)
 			if colors!=None:
 
VIP: No | Used: 622M/101M | 0.054 sec / GZIP-2