Verify avatars'sha on hdd in muc too, don't send sha when disconnecting from muc
This commit is contained in:
parent
b971afec24
commit
f4d43979ed
|
@ -1170,10 +1170,10 @@ class Connection(ConnectionHandlers):
|
||||||
ptype = None
|
ptype = None
|
||||||
if show == 'offline':
|
if show == 'offline':
|
||||||
ptype = 'unavailable'
|
ptype = 'unavailable'
|
||||||
show = helpers.get_xmpp_show(show)
|
xmpp_show = helpers.get_xmpp_show(show)
|
||||||
p = common.xmpp.Presence(to = '%s/%s' % (jid, nick), typ = ptype,
|
p = common.xmpp.Presence(to = '%s/%s' % (jid, nick), typ = ptype,
|
||||||
show = show, status = status)
|
show = xmpp_show, status = status)
|
||||||
if gajim.config.get('send_sha_in_gc_presence'):
|
if gajim.config.get('send_sha_in_gc_presence') and show != 'offline':
|
||||||
p = self.add_sha(p, ptype != 'unavailable')
|
p = self.add_sha(p, ptype != 'unavailable')
|
||||||
# send instantly so when we go offline, status is sent to gc before we
|
# send instantly so when we go offline, status is sent to gc before we
|
||||||
# disconnect from jabber server
|
# disconnect from jabber server
|
||||||
|
|
|
@ -1669,12 +1669,22 @@ class ConnectionHandlers(ConnectionVcard, ConnectionBytestream, ConnectionDisco,
|
||||||
# contact has no avatar
|
# contact has no avatar
|
||||||
puny_nick = helpers.sanitize_filename(resource)
|
puny_nick = helpers.sanitize_filename(resource)
|
||||||
gajim.interface.remove_avatar_files(jid_stripped, puny_nick)
|
gajim.interface.remove_avatar_files(jid_stripped, puny_nick)
|
||||||
if self.vcard_shas.has_key(who):
|
if self.vcard_shas.has_key(who): # Verify sha cached in mem
|
||||||
if avatar_sha != self.vcard_shas[who]:
|
if avatar_sha != self.vcard_shas[who]:
|
||||||
# avatar has been updated
|
# avatar has been updated
|
||||||
self.request_vcard(who, True)
|
self.request_vcard(who, True)
|
||||||
else:
|
else: # Verify sha cached in hdd
|
||||||
self.vcard_shas[who] = avatar_sha
|
self.vcard_shas[who] = avatar_sha
|
||||||
|
cached_vcard = self.get_cached_vcard(who, True)
|
||||||
|
if cached_vcard and cached_vcard.has_key('PHOTO') and \
|
||||||
|
cached_vcard['PHOTO'].has_key('SHA'):
|
||||||
|
cached_sha = cached_vcard['PHOTO']['SHA']
|
||||||
|
else:
|
||||||
|
cached_sha = ''
|
||||||
|
if cached_sha != self.vcard_shas[who]:
|
||||||
|
# avatar has been updated
|
||||||
|
self.request_vcard(who)
|
||||||
|
self.vcard_shas[who] = avatar_sha
|
||||||
self.dispatch('GC_NOTIFY', (jid_stripped, show, status, resource,
|
self.dispatch('GC_NOTIFY', (jid_stripped, show, status, resource,
|
||||||
prs.getRole(), prs.getAffiliation(), prs.getJid(),
|
prs.getRole(), prs.getAffiliation(), prs.getJid(),
|
||||||
prs.getReason(), prs.getActor(), prs.getStatusCode(),
|
prs.getReason(), prs.getActor(), prs.getStatusCode(),
|
||||||
|
|
Loading…
Reference in New Issue