home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2009 June / maximum-cd-2009-06.iso / DiscContents / digsby_setup.exe / lib / jabber / objects / x_delay.pyo (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-02-26  |  2.2 KB  |  59 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. from pyxmpp.objects import StanzaPayloadObject
  5. from pyxmpp.xmlextra import common_doc, get_node_ns_uri
  6. from datetime import datetime
  7. from pyxmpp.utils import to_utf8
  8. X_DELAY_NS = 'jabber:x:delay'
  9. DELAY_TIME_FORMAT = '%Y%m%dT%H:%M:%S'
  10.  
  11. class X_Delay(StanzaPayloadObject):
  12.     xml_element_name = 'x'
  13.     xml_element_namespace = X_DELAY_NS
  14.     
  15.     def __init__(self, xmlnode = None, from_ = None, timestamp = None):
  16.         if xmlnode is not None:
  17.             self.from_xml(xmlnode)
  18.         else:
  19.             self.from_ = from_
  20.             self.timestamp = timestamp
  21.  
  22.     
  23.     def complete_xml_element(self, xmlnode, _doc):
  24.         None if self.from_ else None
  25.         if isinstance(self.timestamp, basestring):
  26.             stamp = self.timestamp
  27.         else:
  28.             stamp = self.timestamp.strftime(DELAY_TIME_FORMAT)
  29.         xmlnode.setProp('stamp', stamp)
  30.  
  31.     
  32.     def from_xml(self, xmlnode):
  33.         if xmlnode.type != 'element':
  34.             raise ValueError, 'XML node is not a photo (not en element)'
  35.         
  36.         ns = get_node_ns_uri(xmlnode)
  37.         if ns or ns != self.xml_element_namespace or xmlnode.name != self.xml_element_name:
  38.             raise ValueError, 'XML node is not a %s descriptor' % self.xml_element_name
  39.         
  40.         from_ = xmlnode.prop('from')
  41.         self.from_ = None if from_ else None
  42.         timestamp = xmlnode.prop('stamp')
  43.         
  44.         try:
  45.             self.timestamp = datetime.strptime(timestamp, DELAY_TIME_FORMAT)
  46.         except Exception:
  47.             self.timestamp = None
  48.  
  49.  
  50.     
  51.     def __str__(self):
  52.         n = self.as_xml(doc = common_doc)
  53.         r = n.serialize()
  54.         n.unlinkNode()
  55.         n.freeNode()
  56.         return r
  57.  
  58.  
  59.