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
					
				
					 2 changed files with 15 additions and 5 deletions
				
			
		|  | @ -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,11 +1669,21 @@ 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: # Verify sha cached in hdd | ||||||
|  | 						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: | 						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.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(), | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue