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("--search", "-s", help="Search term to filter rooms by.")
@click.option("--order-by", "-O", @click.option("--order-by", "-O",
type=click.Choice(["name", "joined_members", "canonical_alias", "creator", "version",]), 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", @click.option("--direction", "-d",
type=click.Choice(["f", "b"]), 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 @pass_api
def room_ls( def room_ls(
api: SynapseApiClient, api: SynapseApiClient,
@ -82,6 +82,8 @@ def show_room(
remove_media_id: Optional[str], remove_media_id: Optional[str],
avatar: bool avatar: bool
): ):
room_id = f"!{room_id}:{api.config.homeserver}"
if room_id is None: if room_id is None:
click.echo("You must specify a room ID.", err=True) click.echo("You must specify a room ID.", err=True)
return return
@ -92,17 +94,15 @@ def show_room(
return return
room_api = RoomAPI(api) room_api = RoomAPI(api)
room_details = room_api.get_room_details(room_id) room_service = RoomService(room_api)
room_details = room_service.get_room_details(room_id)
if not room_details:
click.echo(f"Error: Room {room_id} not found.", err=True)
return
if avatar: if avatar:
if not room_details.avatar: if not room_details.avatar:
click.echo("Room has no avatar.") click.echo("Room has no avatar.")
return return
click.echo(room_details.avatar) click.echo(f"\nRoom Avatar: {room_details.avatar}")
exit(0)
# TODO: implement adding avatar to blacklist # TODO: implement adding avatar to blacklist
if rm_all: if rm_all:
@ -116,20 +116,24 @@ def show_room(
pass pass
if not media: if not media:
click.echo(f"Room details: {room_id}") click.echo(f"Room details for room {room_id}:")
click.echo("=" * 40)
click.echo(f"Name: {room_details.name}") 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"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"Creator: {room_details.creator}")
click.echo(f"Encryption: {room_details.encryption}") click.echo(f"Encryption: {room_details.encryption}")
click.echo(f"Federatable: {room_details.federatable}")
click.echo(f"Public: {room_details.public}") 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"Guest Access: {room_details.guest_access}")
click.echo(f"History Visibility: {room_details.history_visibility}") click.echo(f"History Visibility: {room_details.history_visibility}")
click.echo(f"State Events: {room_details.state_events}") click.echo(f"State Events: {room_details.state_events}")
click.echo(f"Room Type: {room_details.room_type}") 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) room_media = room_api.get_media_from_room(room_id)
if room_media: if room_media:
for uri in room_media.all_uris: for uri in room_media.all_uris: