Philipp Hörist pushed to branch master at gajim / gajim

Commits:

1 changed file:

Changes:

  • gajim/common/modules/roster.py
    ... ... @@ -149,34 +149,33 @@ class Roster(BaseModule):
    149 149
     
    
    150 150
             for item in query.getTags('item'):
    
    151 151
                 jid = item.getAttr('jid')
    
    152
    -            self._data[jid] = self._get_item_attrs(item, update=False)
    
    152
    +            self._data[jid] = self._get_item_attrs(item)
    
    153 153
                 self._log.info('Item %s: %s', jid, self._data[jid])
    
    154 154
             return version
    
    155 155
     
    
    156 156
         @staticmethod
    
    157
    -    def _get_item_attrs(item, update=True):
    
    157
    +    def _get_item_attrs(item, update=False):
    
    158 158
             '''
    
    159 159
             update: True
    
    160
    -            returns only the attrs that are present in the item
    
    160
    +            Omit avatar_sha from the returned attrs
    
    161 161
     
    
    162 162
             update: False
    
    163
    -            returns the attrs of the item but fills missing
    
    164
    -            attrs with default values
    
    163
    +            Include the default value fro avatar_sha in the returned attrs
    
    165 164
             '''
    
    166 165
     
    
    167 166
             default_attrs = {'name': None,
    
    168 167
                              'ask': None,
    
    169 168
                              'subscription': None,
    
    170
    -                         'groups': [],
    
    171
    -                         'avatar_sha': None}
    
    169
    +                         'groups': []}
    
    170
    +
    
    171
    +        if not update:
    
    172
    +            default_attrs['avatar_sha'] = None
    
    172 173
     
    
    173 174
             attrs = item.getAttrs()
    
    174 175
             del attrs['jid']
    
    175 176
             groups = {group.getData() for group in item.getTags('group')}
    
    176 177
             attrs['groups'] = list(groups)
    
    177 178
     
    
    178
    -        if update:
    
    179
    -            return attrs
    
    180 179
             default_attrs.update(attrs)
    
    181 180
             return default_attrs
    
    182 181
     
    
    ... ... @@ -196,13 +195,13 @@ class Roster(BaseModule):
    196 195
     
    
    197 196
             if item.getAttr('subscription') == 'remove':
    
    198 197
                 self._data.pop(jid, None)
    
    199
    -            attrs = self._get_item_attrs(item, update=False)
    
    198
    +            attrs = self._get_item_attrs(item)
    
    200 199
                 return RosterItem(jid, attrs)
    
    201 200
     
    
    202 201
             if jid not in self._data:
    
    203
    -            self._data[jid] = self._get_item_attrs(item, update=False)
    
    202
    +            self._data[jid] = self._get_item_attrs(item)
    
    204 203
             else:
    
    205
    -            self._data[jid].update(self._get_item_attrs(item))
    
    204
    +            self._data[jid].update(self._get_item_attrs(item, update=True))
    
    206 205
     
    
    207 206
             return RosterItem(jid, self._data[jid])
    
    208 207