mirror of
				https://git.anonymousland.org/anonymousland/synapse.git
				synced 2025-10-31 04:58:53 -04:00 
			
		
		
		
	Include heroes in partial join responses' state (#14442)
* Pull out hero selection logic * Include heroes in partial join response's state * Changelog * Fixup trial test * Remove TODO
This commit is contained in:
		
							parent
							
								
									258b5285b6
								
							
						
					
					
						commit
						1eed795fc5
					
				
					 5 changed files with 60 additions and 25 deletions
				
			
		|  | @ -41,6 +41,7 @@ from synapse.logging.context import current_context | |||
| from synapse.logging.opentracing import SynapseTags, log_kv, set_tag, start_active_span | ||||
| from synapse.push.clientformat import format_push_rules_for_user | ||||
| from synapse.storage.databases.main.event_push_actions import RoomNotifCounts | ||||
| from synapse.storage.databases.main.roommember import extract_heroes_from_room_summary | ||||
| from synapse.storage.roommember import MemberSummary | ||||
| from synapse.storage.state import StateFilter | ||||
| from synapse.types import ( | ||||
|  | @ -805,18 +806,6 @@ class SyncHandler: | |||
|             if canonical_alias and canonical_alias.content.get("alias"): | ||||
|                 return summary | ||||
| 
 | ||||
|         me = sync_config.user.to_string() | ||||
| 
 | ||||
|         joined_user_ids = [ | ||||
|             r[0] for r in details.get(Membership.JOIN, empty_ms).members if r[0] != me | ||||
|         ] | ||||
|         invited_user_ids = [ | ||||
|             r[0] for r in details.get(Membership.INVITE, empty_ms).members if r[0] != me | ||||
|         ] | ||||
|         gone_user_ids = [ | ||||
|             r[0] for r in details.get(Membership.LEAVE, empty_ms).members if r[0] != me | ||||
|         ] + [r[0] for r in details.get(Membership.BAN, empty_ms).members if r[0] != me] | ||||
| 
 | ||||
|         # FIXME: only build up a member_ids list for our heroes | ||||
|         member_ids = {} | ||||
|         for membership in ( | ||||
|  | @ -828,11 +817,8 @@ class SyncHandler: | |||
|             for user_id, event_id in details.get(membership, empty_ms).members: | ||||
|                 member_ids[user_id] = event_id | ||||
| 
 | ||||
|         # FIXME: order by stream ordering rather than as returned by SQL | ||||
|         if joined_user_ids or invited_user_ids: | ||||
|             summary["m.heroes"] = sorted(joined_user_ids + invited_user_ids)[0:5] | ||||
|         else: | ||||
|             summary["m.heroes"] = sorted(gone_user_ids)[0:5] | ||||
|         me = sync_config.user.to_string() | ||||
|         summary["m.heroes"] = extract_heroes_from_room_summary(details, me) | ||||
| 
 | ||||
|         if not sync_config.filter_collection.lazy_load_members(): | ||||
|             return summary | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 David Robertson
						David Robertson