home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2011 October / maximum-cd-2011-10.iso / DiscContents / digsby_setup.exe / lib / jabber / objects / iq_privacy.pyo (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2011-06-22  |  6.4 KB  |  198 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.6)
  3.  
  4. from pyxmpp.iq import Iq
  5. import libxml2
  6. import util
  7. from pyxmpp.utils import to_utf8
  8. from pyxmpp.xmlextra import get_node_ns_uri
  9. from pyxmpp.xmlextra import common_doc
  10. from pyxmpp.objects import StanzaPayloadObject
  11. PRIVACY_NS = 'jabber:iq:privacy'
  12. PRIVACY_TYPES = ('message', 'presence-in', 'presence-out', 'iq')
  13. PRIVACY_ATTRS = ('type', 'value', 'action', 'order')
  14.  
  15. class ListItem(StanzaPayloadObject):
  16.     xml_element_name = 'item'
  17.     xml_element_namespace = PRIVACY_NS
  18.     
  19.     def __init__(self, xmlnode = None, type = None, value = None, action = None, order = 0, message = False, presence_in = False, presence_out = False, iq = False):
  20.         self.type = type
  21.         self.value = value
  22.         self.action = action
  23.         self.order = order
  24.         self.message = message
  25.         self.presence_in = presence_in
  26.         self.presence_out = presence_out
  27.         self.iq = iq
  28.         None if xmlnode else None
  29.         if self.type is not None:
  30.             pass
  31.         
  32.  
  33.     
  34.     def __from_xml(self, xmlnode):
  35.         if xmlnode.type != 'element':
  36.             raise ValueError, 'XML node is not a list item (not en element)'
  37.         xmlnode.type != 'element'
  38.         ns = get_node_ns_uri(xmlnode)
  39.         if ns or ns != PRIVACY_NS or xmlnode.name != 'item':
  40.             raise ValueError, 'XML node is not a list item'
  41.         xmlnode.name != 'item'
  42.         [ setattr(self, x, xmlnode.prop(x)) for x in PRIVACY_ATTRS ]
  43.         self.order = [] if self.order else 0
  44.         n = xmlnode.children
  45.         while n:
  46.             if n.type != 'element':
  47.                 n = n.next
  48.                 continue
  49.             
  50.             ns = get_node_ns_uri(n)
  51.             if ns or ns != PRIVACY_NS or n.name not in PRIVACY_TYPES:
  52.                 n = n.next
  53.                 continue
  54.             
  55.             setattr(self, util.pythonize(n.name), True)
  56.             n = n.next
  57.  
  58.     
  59.     def all_blocked(self):
  60.         if not all(self.message, self.presence_in, self.presence_out, self.iq):
  61.             pass
  62.         return not any(self.message, self.presence_in, self.presence_out, self.iq)
  63.  
  64.     
  65.     def complete_xml_element(self, xmlnode, doc):
  66.         None if self.type else None
  67.         None if self.value else None
  68.         xmlnode.setProp('action', self.action)
  69.         xmlnode.setProp('order', to_utf8(self.order))
  70.         _[1]
  71.  
  72.     
  73.     def __str__(self):
  74.         n = self.as_xml(doc = common_doc)
  75.         r = n.serialize()
  76.         n.unlinkNode()
  77.         n.freeNode()
  78.         return r
  79.  
  80.  
  81.  
  82. class List(StanzaPayloadObject, list):
  83.     xml_element_name = 'list'
  84.     xml_element_namespace = PRIVACY_NS
  85.     
  86.     def __init__(self, xmlnode_or_name):
  87.         list.__init__(self)
  88.         if isinstance(xmlnode_or_name, libxml2.xmlNode):
  89.             self._List__from_xml(xmlnode_or_name)
  90.         else:
  91.             self.name = xmlnode_or_name
  92.  
  93.     
  94.     def __from_xml(self, xmlnode):
  95.         if xmlnode.type != 'element':
  96.             raise ValueError, 'XML node is not a list (not en element)'
  97.         xmlnode.type != 'element'
  98.         ns = get_node_ns_uri(xmlnode)
  99.         if ns or ns != PRIVACY_NS or xmlnode.name != 'list':
  100.             raise ValueError, 'XML node is not a list'
  101.         xmlnode.name != 'list'
  102.         self.name = xmlnode.prop('name')
  103.         n = xmlnode.children
  104.         while n:
  105.             if n.type != 'element':
  106.                 n = n.next
  107.                 continue
  108.             
  109.             ns = get_node_ns_uri(n)
  110.             if ns or ns != PRIVACY_NS or n.name != 'item':
  111.                 n = n.next
  112.                 continue
  113.             
  114.             self.append(ListItem(n))
  115.             n = n.next
  116.  
  117.     
  118.     def complete_xml_element(self, xmlnode, doc):
  119.         xmlnode.setProp('name', self.name)
  120.         [ item.as_xml(xmlnode, doc) for item in self ]
  121.  
  122.     
  123.     def __str__(self):
  124.         n = self.as_xml(doc = common_doc)
  125.         r = n.serialize()
  126.         n.unlinkNode()
  127.         n.freeNode()
  128.         return r
  129.  
  130.  
  131.  
  132. class Privacy(StanzaPayloadObject, list):
  133.     xml_element_name = 'query'
  134.     xml_element_namespace = PRIVACY_NS
  135.     
  136.     def __init__(self, xmlnode = None):
  137.         self.active = None
  138.         self.default = None
  139.         if xmlnode is not None:
  140.             self._Privacy__from_xml(xmlnode)
  141.         
  142.  
  143.     
  144.     def __from_xml(self, xmlnode):
  145.         if xmlnode.type != 'element':
  146.             raise ValueError, 'XML node is not a Privacy (not en element)'
  147.         xmlnode.type != 'element'
  148.         ns = get_node_ns_uri(xmlnode)
  149.         if ns or ns != PRIVACY_NS or xmlnode.name != 'query':
  150.             raise ValueError, 'XML node is not a query'
  151.         xmlnode.name != 'query'
  152.         n = xmlnode.children
  153.         while n:
  154.             if n.type != 'element':
  155.                 n = n.next
  156.                 continue
  157.             
  158.             ns = get_node_ns_uri(n)
  159.             if ns or ns != PRIVACY_NS or n.name not in ('active', 'default', 'list'):
  160.                 n = n.next
  161.                 continue
  162.             
  163.             if n.name == 'active':
  164.                 self.active = None if libxml2.xmlNode.hasProp('name') else None
  165.             elif n.name == 'default':
  166.                 self.default = None if libxml2.xmlNode.hasProp('default') else None
  167.             else:
  168.                 self.append(List(n))
  169.             n = n.next
  170.  
  171.     
  172.     def complete_xml_element(self, xmlnode, doc):
  173.         if self.active is not None:
  174.             active = xmlnode.newChild(None, 'active', None)
  175.             if self.active:
  176.                 active.setProp('name', self.active)
  177.             
  178.         
  179.         if self.default is not None:
  180.             default = xmlnode.newChild(None, 'default', None)
  181.             if self.default:
  182.                 default.setProp('name', self.default)
  183.             
  184.         
  185.         for list_ in self:
  186.             list_.as_xml(xmlnode, doc)
  187.         
  188.  
  189.     
  190.     def __str__(self):
  191.         n = self.as_xml(doc = common_doc)
  192.         r = n.serialize()
  193.         n.unlinkNode()
  194.         n.freeNode()
  195.         return r
  196.  
  197.  
  198.