{# This file is part of g0v/OpenTransLive. Copyright (c) 2025 Sean Gau Licensed under the GNU AGPL v3.0 See LICENSE for details. -#} {% extends "base.html" %} {% block title %}GT Live 廣田資訊 - {{ user.email }}{% endblock %} {% block content %}
User Report
{{ current_email }} Admin Dashboard Logout
← All users

{{ user.email }}

Realtime {{ 'enabled' if user.realtime_enabled else 'disabled' }} Provider: {{ user.ai_provider or 'default' }} Interval: {{ user.partial_interval | default('default', true) }} Max languages: {{ user.max_languages or 'unlimited' }} API key: {{ (user.api_key_prefix ~ '…') if user.api_key_prefix else 'none' }}

Created {{ user.created_at[:19].replace('T', ' ') ~ ' UTC' if user.created_at else '—' }} · last active {{ user.last_active_at[:19].replace('T', ' ') ~ ' UTC' if user.last_active_at else 'never' }} · last login {{ user.last_login_at[:19].replace('T', ' ') ~ ' UTC' if user.last_login_at else 'never' }}

{% include "partials/usage_chart.html" %}

Owned Rooms

All-time transcribed audio across owned rooms: {{ total_audio_display }} over {{ rooms|length }} room{{ '' if rooms|length == 1 else 's' }}. Days before daily tracking was deployed are reconstructed from the server logs (app.usage_backfill), so their granularity is coarser than live data.

{% if rooms %}
{% for room in rooms %} {% endfor %}
Room Created Last heartbeat Audio (all time)
{{ room.sid }} {{ room.created_at[:19].replace('T', ' ') ~ ' UTC' if room.created_at else '—' }} {{ room.admin_last_heartbeat[:19].replace('T', ' ') ~ ' UTC' if room.admin_last_heartbeat else '—' }} {{ room.audio_display }}
{% else %}
This account owns no rooms.
{% endif %}
{% endblock %}