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

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.6)
  3.  
  4. from common.actions import ActionMeta
  5. import jabber
  6. import common.actions as common
  7. from common.actions import action
  8. import contacts
  9. from util import callsback
  10. import logging
  11. log = logging.getLogger('jabber.contact')
  12. contact_attrs = ('watched', 'buddy_changed', '__repr__', 'group', 'buddy', 'remove_from_group')
  13.  
  14. no_widget = lambda self, *a, **k: if getattr(self.buddy, 'iswidget', False):
  15. NoneTrue
  16. cgetattr = contacts.Contact.__getattribute__
  17. objget = object.__getattribute__
  18.  
  19. class JabberContact(common.actions.ActionType, contacts.Contact):
  20.     inherited_actions = [
  21.         jabber.jbuddy]
  22.     __metaclass__ = ActionMeta
  23.     _renderer = 'Contact'
  24.     
  25.     def __init__(self, buddy, group):
  26.         self.group = group
  27.         contacts.Contact.__init__(self, buddy, buddy.id)
  28.  
  29.     
  30.     def remove(self, callback = None):
  31.         if len(self.buddy.groups) <= 1:
  32.             return self.buddy.remove(callback = callback)
  33.         return self.remove_from_group(callback = callback)
  34.  
  35.     remove = action()(callsback(remove))
  36.     
  37.     def rename_gui(self):
  38.         return contacts.Contact.rename_gui(self)
  39.  
  40.     rename_gui = action(no_widget)(rename_gui)
  41.     
  42.     def remove_from_group(self, callback = None):
  43.         log.info('remove_from_group %s: %s', self.group, self)
  44.         item = self.protocol.roster.get_item_by_jid(self.buddy.jid).clone()
  45.         item.groups.remove(self.group)
  46.         query = item.make_roster_push()
  47.         self.protocol.send_cb(query, callback = callback)
  48.  
  49.     remove_from_group = callsback(remove_from_group)
  50.     
  51.     def replace_group(self, new_group, callback = None):
  52.         item = self.protocol.roster.get_item_by_jid(self.buddy.jid).clone()
  53.         if self.group is not None:
  54.             item.groups.remove(self.group)
  55.         
  56.         if new_group not in item.groups:
  57.             item.groups.append(new_group)
  58.         
  59.         query = item.make_roster_push()
  60.         self.protocol.send_cb(query, callback = callback)
  61.  
  62.     replace_group = callsback(replace_group)
  63.     
  64.     def view_past_chats(self, *a, **k):
  65.         self.buddy.view_past_chats(*a, **k)
  66.  
  67.     view_past_chats = action(no_widget)(view_past_chats)
  68.     
  69.     def __iter__(self):
  70.         return iter(self.buddy)
  71.  
  72.     
  73.     def __getattr__(self, attr):
  74.         if attr in contact_attrs:
  75.             return cgetattr(self, attr)
  76.         return getattr(cgetattr(self, 'buddy'), attr)
  77.  
  78.     
  79.     def __repr__(self):
  80.         return '<%s %s>' % (type(self).__name__, self.buddy.name)
  81.  
  82.     
  83.     def block(self):
  84.         pass
  85.  
  86.     block = action((lambda self: pass))(block)
  87.     unblock = block
  88.  
  89.