def _got_indicators(self, indicators): indicators.pop('user', None) indicators.pop('countnewmail', None) # we don't care about the number if indicators is None: return to_notify = util.dictdiff(self.indicators, indicators) dirty = self.indicators != indicators self.indicators = indicators self.event('on_indicators', indicators) self._notify_alerts(to_notify) if dirty: self._dirty = True log.info('Got new alerts')
def backup_blobs(self, dir): pth = path(dir) from util.json import pydumps from time import time for name in ['profile', 'buddylist', 'notifications', 'prefs', 'statuses', 'icon']: if name == 'buddylist': data = self.blist.save_data() elif name == 'prefs': data = to_primitive(dictdiff(profile.defaultprefs, self.prefs)) elif name == 'defaultprefs': pass elif name == 'statuses': data = [s.__getstate__() for s in self.statuses] for s in data: s['format'] = dict(s['format']) else: data = to_primitive(getattr(self, name)) f = pth / name + '_' + str(int(time())) + '.blob' with f.open('wb') as out: if name == 'icon': out.write(data) else: out.write(pydumps(data).encode('z'))
def save_out_prefs(self, force = False, callback = None): 'Pack the data and send it to the server.' data = dictdiff(profile.defaultprefs, self.prefs) self.blob_manager.set_blob('prefs', data = to_primitive(data), force = force, callback = callback)
def get_options(self): opts = self._get_options() d = self.protocol_info()['defaults'] return dictdiff(d, opts)