add show_user
This commit is contained in:
parent
aa26189bb0
commit
8e59d18cda
1 changed files with 68 additions and 1 deletions
|
@ -39,4 +39,71 @@ def user_ls(
|
|||
|
||||
offset += limit
|
||||
if not click.confirm("Show more users?", default=True):
|
||||
break
|
||||
break
|
||||
|
||||
|
||||
@user.command("show")
|
||||
@click.argument("user_id")
|
||||
@click.option("--media", is_flag=True, help="List all user media")
|
||||
@click.option("--rm-all", is_flag=True, help="Remove all media of user")
|
||||
@click.option("--rm", "remove_media_id", help="Remove media by ID")
|
||||
@click.option("--avatar", is_flag=True, help="Show avatar URI")
|
||||
@pass_api
|
||||
def show_user(
|
||||
api: SynapseApiClient,
|
||||
user_id: str,
|
||||
media: bool,
|
||||
rm_all: bool,
|
||||
remove_media_id: Optional[str],
|
||||
avatar: bool
|
||||
):
|
||||
if not user_id.startswith("@"):
|
||||
user_id = f"@{user_id}"
|
||||
if not ':' in user_id:
|
||||
user_id = f"{user_id}:{api.config.homeserver}"
|
||||
|
||||
if user_id is None:
|
||||
click.echo("You must specify a user ID.", err=True)
|
||||
return
|
||||
|
||||
if rm_all or remove_media_id:
|
||||
if not media:
|
||||
click.echo("You must specify --media to remove media.")
|
||||
return
|
||||
|
||||
user_api = UserAPI(api)
|
||||
user_service = UserService(user_api)
|
||||
user_details = user_service.get_user_details_by_id(user_id)
|
||||
click.echo(f"Display name: {user_details.display_name}")
|
||||
click.echo(f"Username: {user_details.name}")
|
||||
click.echo(f"Avatar URL: {user_details.avatar_url}")
|
||||
click.echo(f"Is Admin: {user_details.is_admin}")
|
||||
click.echo(f"Creation date: {user_details.creation_datetime}")
|
||||
click.echo(f"Last active: {user_details.last_seen_datetime}")
|
||||
|
||||
if click.confirm("Show media?", default=True):
|
||||
user_media_stats = user_service.get_user_media_stats_by_id(user_id)
|
||||
click.echo(f"Media count: {user_media_stats.media_count}")
|
||||
click.echo(f"Media size: {user_media_stats.media_length_mb()}MB")
|
||||
user_media = user_service.get_user_media_by_id(user_id, 10, 0, "media_length", "b")
|
||||
# if user_media:
|
||||
# for media in user_media.media:
|
||||
# click.echo(f"Upload Name: {media.upload_name}")
|
||||
# click.echo(f"Media Type: {media.media_type}")
|
||||
# click.echo(f"Created Date: {media.created_datetime}")
|
||||
# click.echo(f"Last access: {media.last_access_datetime}")
|
||||
# click.echo(f"Media size: {media.get_size_formatted()}")
|
||||
# click.echo("=" * 50)
|
||||
# click.echo(f"Media count: {user_media.total}")
|
||||
# click.echo(f"Next token: {user_media.next_token}")
|
||||
video_files = user_service.get_user_media_by_type(user_id, 999, 0, "media_length", "b", "video")
|
||||
if video_files:
|
||||
video_size = video_files['total_size'] / (1024 * 1024)
|
||||
click.echo(f"Total video size: {video_size:.2f}MB")
|
||||
click.echo(f"Total video count: {video_files['total_count']}")
|
||||
|
||||
|
||||
if avatar:
|
||||
if not user_details.avatar_url:
|
||||
click.echo("User has no avatar.")
|
||||
click.echo(f"Avatar URL: {user_details.avatar_url}")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue