{{ APP_NAME }} - ユーザー詳細

← ユーザー一覧に戻る
{% include '_nav.html' %} {% if user %}

{{ user.display_name or '(無名)' }}

@{{ user.username or '' }} ・ X で開く ↗
合計 {{ summary.total_replies or 0 }} リプライ 対象ツイート {{ summary.tweet_count or 0 }} ♡ 合計 {{ summary.like_sum or 0 }} (最大 {{ summary.like_max or 0 }}) 🔴 {{ summary.red or 0 }} 🟡 {{ summary.yellow or 0 }} {{ summary.clean or 0 }} 未判定 {{ summary.pending or 0 }} 初回 {{ (summary.first_seen or '')[:10] }} / 最終 {{ (summary.last_seen or '')[:10] }}
{% else %}
ユーザーが見つかりません (ID: {{ user_id }})
{% endif %} {% if monthly %}

📊 月別リプライ数 (JST)

{% set max_count = (monthly|map(attribute='count')|max) or 1 %}
{% for m in monthly %} {% set h = ((m.count / max_count) * 100)|int %}
{{ m.count }}
{{ m.month }}
{% endfor %}
{% endif %} {% if heatmap %}

🕒 投稿時間の傾向(JST 曜日×時間)

{% set hmax = (heatmap|map(attribute='count')|max) or 1 %} {% set grid = {} %} {% for h in heatmap %}{% set _ = grid.update({(h.dow, h.hour): h.count}) %}{% endfor %} {% set dow_labels = ['日','月','火','水','木','金','土'] %} {% for hr in range(24) %}{% endfor %} {% for d in range(7) %} {% for hr in range(24) %} {% set v = grid.get((d, hr), 0) %} {% set ratio = (v / hmax) %} {% set bg = 'rgba(220, 53, 69, ' ~ (ratio * 0.9)|round(2) ~ ')' if v > 0 else 'transparent' %} {% endfor %} {% endfor %}
{{ hr }}
{{ dow_labels[d] }} {{ v if v else '' }}
{% endif %} {% if tweets_replied %}

🔗 リプライした親ツイート (Top {{ tweets_replied|length }})

{% for tr in tweets_replied %}
@{{ tr.tweet_author or '?' }} — {{ (tr.tweet_text or '(本文未取得)')[:120] }}{% if (tr.tweet_text or '')|length > 120 %}…{% endif %}
このユーザーのリプ数: {{ tr.reply_count }} ・ ♡ {{ tr.like_sum or 0 }} ・ 最終: {{ (tr.last_reply_at or '')[:25] }}
{% endfor %}
{% endif %}
Excel出力
{% if replies %} {% for r in replies %} {% set _card = (r.ai_card or '')|lower %}
{% if _card == 'red' %}🔴 {{ r.ai_score or 0 }} {% elif _card == 'yellow' %}🟡 {{ r.ai_score or 0 }} {% elif _card == 'clean' %}⚪ {{ r.ai_score or 0 }} {% endif %} ♡ {{ r.like_count or 0 }} ・ 💬 {{ r.reply_count or 0 }} ・ ↻ {{ r.retweet_count or 0 }} {{ r.created_at or '' }}
{{ r.text or '' }}
{% if r.ai_reason %}
💡 {{ r.ai_reason }}
{% endif %} {% if r.parent_text %}
🔗 親: @{{ r.parent_author_username or '' }} — {{ (r.parent_text or '')[:120] }}{% if (r.parent_text or '')|length > 120 %}…{% endif %}
{% endif %}
{% endfor %} {% else %}
このユーザーのリプライはまだ取得されていません。
{% endif %}