change default listing of rooms to joined_members and forward. plus some minor changes

This commit is contained in:
Hirad 2025-07-17 15:11:46 +03:30
parent 928bc7c3f4
commit ebb8064eb9

View file

@ -18,10 +18,10 @@ room = click.Group(name="room", help="Room commands.")
@click.option("--search", "-s", help="Search term to filter rooms by.")
@click.option("--order-by", "-O",
type=click.Choice(["name", "joined_members", "canonical_alias", "creator", "version",]),
default="name", help="Field to order result by.")
default="joined_members", help="Field to order result by.")
@click.option("--direction", "-d",
type=click.Choice(["f", "b"]),
default="b", help="Direction to order result by. (f=forward, b=backward)")
default="f", help="Direction to order result by. (f=forward, b=backward)")
@pass_api
def room_ls(
api: SynapseApiClient,
@ -82,6 +82,8 @@ def show_room(
remove_media_id: Optional[str],
avatar: bool
):
room_id = f"!{room_id}:{api.config.homeserver}"
if room_id is None:
click.echo("You must specify a room ID.", err=True)
return
@ -92,17 +94,15 @@ def show_room(
return
room_api = RoomAPI(api)
room_details = room_api.get_room_details(room_id)
if not room_details:
click.echo(f"Error: Room {room_id} not found.", err=True)
return
room_service = RoomService(room_api)
room_details = room_service.get_room_details(room_id)
if avatar:
if not room_details.avatar:
click.echo("Room has no avatar.")
return
click.echo(room_details.avatar)
click.echo(f"\nRoom Avatar: {room_details.avatar}")
exit(0)
# TODO: implement adding avatar to blacklist
if rm_all:
@ -116,20 +116,24 @@ def show_room(
pass
if not media:
click.echo(f"Room details: {room_id}")
click.echo("=" * 40)
click.echo(f"Room details for room {room_id}:")
click.echo(f"Name: {room_details.name}")
click.echo(f"Avatar: {room_details.avatar}")
click.echo(f"ID: {room_details.room_id}")
click.echo(f"Members: {room_details.joined_members} (Local: {room_details.joined_local_members})")
click.echo(f"Avatar: {room_details.avatar}")
click.echo(f"Joined Members: {room_details.joined_members} (local: {room_details.joined_local_members})")
click.echo(f"Version: {room_details.version}")
click.echo(f"Creator: {room_details.creator}")
click.echo(f"Encryption: {room_details.encryption}")
click.echo(f"Federatable: {room_details.federatable}")
click.echo(f"Public: {room_details.public}")
click.echo(f"Join Rules: {room_details.join_rules}")
click.echo(f"Guest Access: {room_details.guest_access}")
click.echo(f"History Visibility: {room_details.history_visibility}")
click.echo(f"State Events: {room_details.state_events}")
click.echo(f"Room Type: {room_details.room_type}")
else:
click.echo("=" * 50)
if media or click.confirm("Do you want to list media in the room?", default=True):
room_media = room_api.get_media_from_room(room_id)
if room_media:
for uri in room_media.all_uris: