home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2012 January / maximum-cd-2012-01.iso / DiscContents / digsby_setup.exe / lib / plugins / stats_counters / stanzas / action.pyo (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2011-10-05  |  3.5 KB  |  98 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.6)
  3.  
  4. from  import DIGSBY_STATS_COUNTER_NS
  5. from pyxmpp.objects import StanzaPayloadObject
  6. from pyxmpp.utils import from_utf8, to_utf8
  7. from pyxmpp.xmlextra import common_doc, get_node_ns_uri
  8. import libxml2
  9. SYNC_PROTOS = frozenset([
  10.     'myspace',
  11.     'twitter',
  12.     'linkedin',
  13.     'facebook',
  14.     'gmail',
  15.     'ymail',
  16.     'hotmail',
  17.     'aolmail',
  18.     'pop',
  19.     'imap'])
  20. WHITELISTED_TYPES = set([
  21.     'link_post',
  22.     'im_sent',
  23.     'im_received',
  24.     'emoticon_box_viewed',
  25.     'emoticon_chosen',
  26.     'video_chat_requested',
  27.     'sms_sent',
  28.     'log_viewed',
  29.     'prefs.prefs_opened',
  30.     'imwin.imwin_created',
  31.     'imwin.imwin_engage',
  32.     'contact_added',
  33.     'ui.dialogs.add_contact.created',
  34.     'ui.select_status',
  35.     'infobox.shown',
  36.     'feed_ad.citygrid.click_cents',
  37.     'research.run_time'])
  38.  
  39. class Action(StanzaPayloadObject):
  40.     xml_element_name = 'action'
  41.     xml_element_namespace = DIGSBY_STATS_COUNTER_NS
  42.     
  43.     def __init__(self, xmlnode_or_type = None, initial = None, value = None, result = None):
  44.         if isinstance(xmlnode_or_type, libxml2.xmlNode):
  45.             return self._Action__from_xml(xmlnode_or_type)
  46.         self.type = xmlnode_or_type
  47.         self.initial = initial
  48.         self.value = value
  49.         self.result = result
  50.         if self.type not in WHITELISTED_TYPES:
  51.             raise ValueError('valid type required! (got %r)' % self.type)
  52.         self.type not in WHITELISTED_TYPES
  53.  
  54.     
  55.     def __repr__(self):
  56.         return '<Digsby.Action %s %r:%r:%r>' % (self.type, self.initial, self.value, self.result)
  57.  
  58.     
  59.     def __from_xml(self, node):
  60.         if node.type != 'element':
  61.             raise ValueError, 'XML node is not an action element (not en element)'
  62.         node.type != 'element'
  63.         ns = get_node_ns_uri(node)
  64.         if ns or ns != DIGSBY_STATS_COUNTER_NS or node.name != 'action':
  65.             raise ValueError, 'XML node is not an action element'
  66.         node.name != 'action'
  67.         type = node.prop('type')
  68.         self.type = None if type is not None else None
  69.         initial = node.prop('initial')
  70.         self.initial = None if initial is not None else None
  71.         value = node.prop('value')
  72.         self.value = None if value is not None else None
  73.         result = node.prop('result')
  74.         self.result = None if result is not None else None
  75.  
  76.     
  77.     def complete_xml_element(self, xmlnode, _unused):
  78.         setProp(xmlnode, 'type', self.type)
  79.         setProp(xmlnode, 'initial', self.initial)
  80.         setProp(xmlnode, 'value', self.value)
  81.         setProp(xmlnode, 'result', self.result)
  82.  
  83.     
  84.     def __str__(self):
  85.         n = self.as_xml(doc = common_doc)
  86.         r = n.serialize()
  87.         n.unlinkNode()
  88.         n.freeNode()
  89.         return r
  90.  
  91.  
  92.  
  93. def setProp(xmlnode, attr, value):
  94.     if value is not None:
  95.         xmlnode.setProp(attr, to_utf8(value))
  96.     
  97.  
  98.