add local_only arg to list joined members in room admin cmd
Signed-off-by: strawberry <strawberry@puppygock.gay>
This commit is contained in:
parent
b3974c569d
commit
f14a253664
1 changed files with 14 additions and 2 deletions
|
@ -10,6 +10,10 @@ pub(crate) enum RoomInfoCommand {
|
||||||
/// - List joined members in a room
|
/// - List joined members in a room
|
||||||
ListJoinedMembers {
|
ListJoinedMembers {
|
||||||
room_id: Box<RoomId>,
|
room_id: Box<RoomId>,
|
||||||
|
|
||||||
|
/// Lists only our local users in the specified room
|
||||||
|
#[arg(long)]
|
||||||
|
local_only: bool,
|
||||||
},
|
},
|
||||||
|
|
||||||
/// - Displays room topic
|
/// - Displays room topic
|
||||||
|
@ -22,7 +26,7 @@ pub(crate) enum RoomInfoCommand {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[admin_command]
|
#[admin_command]
|
||||||
async fn list_joined_members(&self, room_id: Box<RoomId>) -> Result<RoomMessageEventContent> {
|
async fn list_joined_members(&self, room_id: Box<RoomId>, local_only: bool) -> Result<RoomMessageEventContent> {
|
||||||
let room_name = self
|
let room_name = self
|
||||||
.services
|
.services
|
||||||
.rooms
|
.rooms
|
||||||
|
@ -37,7 +41,15 @@ async fn list_joined_members(&self, room_id: Box<RoomId>) -> Result<RoomMessageE
|
||||||
.rooms
|
.rooms
|
||||||
.state_cache
|
.state_cache
|
||||||
.room_members(&room_id)
|
.room_members(&room_id)
|
||||||
.filter_map(Result::ok);
|
.filter_map(|member| {
|
||||||
|
if local_only {
|
||||||
|
member
|
||||||
|
.ok()
|
||||||
|
.filter(|user| self.services.globals.user_is_local(user))
|
||||||
|
} else {
|
||||||
|
member.ok()
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
let member_info = members
|
let member_info = members
|
||||||
.into_iter()
|
.into_iter()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue