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

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.6)
  3.  
  4. import logging
  5. import threading
  6. import util.primitives.funcs as funcs
  7. log = logging.getLogger('common.ach_mixin')
  8.  
  9. class AchievementMixin(object):
  10.     MILESTONE_MESSAGES = {
  11.         'twit_post': ('has sent %(number)d tweets using Digsby!', 'twitter'),
  12.         'face_post': ('has set %(his)s Facebook status %(number)d times using Digsby!', 'facebook'),
  13.         'mysp_post': ('has set %(his)s MySpace status %(number)d times using Digsby!', 'myspace'),
  14.         'link_post': ('has set %(his)s LinkedIn status %(number)d times using Digsby!', 'linkedin'),
  15.         'im_sent': ('has sent %(number)d IMs using Digsby!', 'digsby'),
  16.         'face_comment': ('has commented on %(number)d Facebook posts using Digsby!', 'facebook'),
  17.         'face_like': ("has 'Liked' %(number)d Facebook posts using Digsby!", 'facebook'),
  18.         'face_photo': ('has looked at %(number)d Facebook photos using Digsby!', 'facebook'),
  19.         'mysp_photo': ('has looked at %(number)d MySpace photos using Digsby!', 'myspace') }
  20.     
  21.     def __init__(self, **options):
  22.         self.post_ach_all = options.setdefault('post_ach_all', self.default('post_ach_all'))
  23.         self.informed_ach = options.setdefault('informed_ach', self.default('informed_ach'))
  24.         self.ach_lock = threading.RLock()
  25.         self.achievements_paused = True
  26.         self.achievements_stored = funcs.Delegate()
  27.  
  28.     
  29.     def should_do_ach(self):
  30.         if self.informed_ach:
  31.             pass
  32.         return self.post_ach_all
  33.  
  34.     
  35.     def should_update(self):
  36.         return self.informed_ach
  37.  
  38.     
  39.     def update_complete(self):
  40.         if self.achievements_paused:
  41.             self.unpause_achievements()
  42.         
  43.  
  44.     
  45.     def get_options(self):
  46.         
  47.         try:
  48.             get_opts = super(AchievementMixin, self).get_options
  49.         except AttributeError:
  50.             opts = { }
  51.  
  52.         opts = get_opts()
  53.         for attr in ('post_ach_all', 'informed_ach'):
  54.             if getattr(self, attr, None) != self.default(attr):
  55.                 opts[attr] = getattr(self, attr, None)
  56.                 continue
  57.         
  58.         return opts
  59.  
  60.     
  61.     def try_connect(self, on_ready):
  62.         if self.should_update():
  63.             on_ready()
  64.         else:
  65.             
  66.             def do_connect(do_post):
  67.                 log.info('return code %r', do_post)
  68.                 self.informed_ach = True
  69.                 self.post_ach_all = do_post
  70.                 self.update_info()
  71.                 on_ready()
  72.  
  73.             self.show_ach_dialog(success = do_connect)
  74.             return False
  75.         return self.should_update()
  76.  
  77.     
  78.     def do_post_achievements(self):
  79.         if self.enabled:
  80.             pass
  81.         return self.should_do_ach()
  82.  
  83.     do_post_achievements = property(do_post_achievements)
  84.     
  85.     def AchieveAccountAdded(self, protocol = None, name = None, *a, **k):
  86.         log.info('AchieveAccountAdded, %r, %r, %r, %r', protocol, name, a, k)
  87.  
  88.     
  89.     def AchieveAccounts(self, *a, **k):
  90.         log.info('AchieveAccounts, %r, %r', a, k)
  91.  
  92.     
  93.     def AchieveThreshold(self, type = None, threshold_passed = None, current_value = None, *a, **k):
  94.         log.info('AchieveThreshold, %r, %r, %r, %r, %r', type, threshold_passed, current_value, a, k)
  95.  
  96.     
  97.     def doAchieve(self, func):
  98.         pass
  99.  
  100.     
  101.     def unpause_achievements(self):
  102.         self.ach_lock.__enter__()
  103.         
  104.         try:
  105.             paused = self.achievements_paused
  106.             self.achievements_paused = False
  107.         finally:
  108.             pass
  109.  
  110.  
  111.     
  112.     def pause_achievements(self):
  113.         self.ach_lock.__enter__()
  114.         
  115.         try:
  116.             _paused = self.achievements_paused
  117.             self.achievements_paused = True
  118.         finally:
  119.             pass
  120.  
  121.  
  122.  
  123.  
  124. def get_num_accounts_string():
  125.     import common
  126.     p = common.profile()
  127.     num_accounts = len(p.all_accounts)
  128.     import gettext
  129.     accounts = gettext.ngettext('account', 'accounts', num_accounts)
  130.     return _('%(num_accounts)s %(accounts)s') % locals()
  131.  
  132.