improvement: show more info in public rooms list
This commit is contained in:
		
							parent
							
								
									63c62a4afa
								
							
						
					
					
						commit
						58683585cc
					
				
					 1 changed files with 36 additions and 4 deletions
				
			
		|  | @ -1404,7 +1404,15 @@ pub async fn get_public_rooms_filtered_route( | |||
| 
 | ||||
|             directory::PublicRoomsChunk { | ||||
|                 aliases: Vec::new(), | ||||
|                 canonical_alias: None, | ||||
|                 canonical_alias: state.get(&(EventType::RoomCanonicalAlias, "".to_owned())).and_then(|s| { | ||||
|                     serde_json::from_value::< | ||||
|                             EventJson<ruma_events::room::canonical_alias::CanonicalAliasEventContent>, | ||||
|                         >(s.content.clone()) | ||||
|                         .unwrap() | ||||
|                         .deserialize() | ||||
|                         .unwrap() | ||||
|                         .alias | ||||
|                 }).map(|a| a.to_string()), | ||||
|                 name: state.get(&(EventType::RoomName, "".to_owned())).map(|s| { | ||||
|                     serde_json::from_value::<EventJson<ruma_events::room::name::NameEventContent>>( | ||||
|                         s.content.clone(), | ||||
|  | @ -1427,9 +1435,33 @@ pub async fn get_public_rooms_filtered_route( | |||
|                         .unwrap() | ||||
|                         .topic | ||||
|                 }), | ||||
|                 world_readable: false, | ||||
|                 guest_can_join: true, | ||||
|                 avatar_url: None, | ||||
|                 world_readable: state.get(&(EventType::RoomHistoryVisibility, "".to_owned())).map_or(false, |s| { | ||||
|                     serde_json::from_value::< | ||||
|                             EventJson<ruma_events::room::history_visibility::HistoryVisibilityEventContent>, | ||||
|                         >(s.content.clone()) | ||||
|                         .unwrap() | ||||
|                         .deserialize() | ||||
|                         .unwrap() | ||||
|                         .history_visibility == history_visibility::HistoryVisibility::WorldReadable | ||||
|                 }), | ||||
|                 guest_can_join: state.get(&(EventType::RoomGuestAccess, "".to_owned())).map_or(false, |s| { | ||||
|                     serde_json::from_value::< | ||||
|                             EventJson<ruma_events::room::guest_access::GuestAccessEventContent>, | ||||
|                         >(s.content.clone()) | ||||
|                         .unwrap() | ||||
|                         .deserialize() | ||||
|                         .unwrap() | ||||
|                         .guest_access == guest_access::GuestAccess::CanJoin | ||||
|                 }), | ||||
|                 avatar_url: state.get(&(EventType::RoomAvatar, "".to_owned())).map(|s| { | ||||
|                     serde_json::from_value::< | ||||
|                             EventJson<ruma_events::room::avatar::AvatarEventContent>, | ||||
|                         >(s.content.clone()) | ||||
|                         .unwrap() | ||||
|                         .deserialize() | ||||
|                         .unwrap() | ||||
|                         .url | ||||
|                 }), | ||||
|             } | ||||
|         }) | ||||
|         .collect::<Vec<_>>(); | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue