# -*- coding: utf-8 -*-
"""記事の公開は誰が（ショート専用・舞台型・2026-11-06）
エイイチの言葉: 自動化の前は記事1本の仕上げと公開に30〜45分／Studio の更新はもう面倒でやりたくない"""
from butai_parts import *
OUTRO_K = 6   # 締めの文の番号（narration.py の最後に足した文）

NAME, VER = "記事の公開は誰が", 4
HEAD = "記事の公開<br>誰がやる？"
T_ON = (0, 1.4)


def scene(T, S):
    h = CSS
    # 0: 記事1本（中身の線が書かれていく）
    t = T(0, 1.4)
    ln = "".join(f'<div class="line" style="left:300px;top:{250 + k * 46}px;width:{w}px;transform-origin:left;transform:scaleX(0);animation:{a("grow", t + 0.15 * k, .35)}"></div>'
                 for k, w in enumerate([300, 260, 300, 180]))
    h += win(t, T(1, 0), kick("記事1本") + '<div class="card" style="left:250px;top:150px;width:400px;height:330px"></div>'
             + f'<div class="line" style="left:300px;top:190px;width:200px;height:26px;background:{ORANGE}"></div>' + ln)
    # 1: 前は 30〜45分（右に手作業が3つ積み上がる）
    t1, s1 = T(1, 0), S(1)
    # 2026-11-07 エイイチ「文字が被ってる」: 数字と手作業のカードが重なっていたので、カードを上の段に横並び、数字を下に分けた
    jobs = "".join(f'<div class="card" style="left:{48 + k * 276}px;top:110px;width:252px;height:92px;font-size:30px;align-items:center;padding:0;white-space:nowrap;opacity:0;animation:{a("up", t1 + 0.3 + k * 0.5)}">{nm}</div>'
                   for k, nm in enumerate(["サムネイル作り", "貼り付け", "公開"]))
    h += win(t1, T(2, 0), kick("前は（記事1本）") + jobs
             + f'<div class="hero" style="left:0;right:0;text-align:center;top:290px;font-size:170px;opacity:0;animation:{a("pop", t1 + s1 - 2.2, .4)}">30〜45<span>分</span></div>')
    # 2: いまは Claude → GitHub → サイト（順にオレンジ）
    t2, s2 = T(2, 0), S(2)
    names = [("Claude", "仕上げる"), ("GitHub", "置く"), ("サイト", "公開")]
    fl = "".join(f'<div class="card" style="left:{48 + k * 276}px;top:300px;width:252px;height:170px;animation:{a("on", t2 + 0.4 + k * (s2 - 0.8) / 2, .25)}">'
                 f'<small>{sm}</small><span style="font-size:44px">{nm}</span></div>' for k, (nm, sm) in enumerate(names))
    h += win(t2, T(3, 0), kick("いまは") + '<div class="msg">Claude が仕上げて、<br>そのまま公開</div>' + fl)
    # 3: SNS も自動で予約（1週間の枠に予約が入る）
    t3, s3 = T(3, 0), S(3)
    days = ["月", "火", "水", "木", "金", "土", "日"]
    cols = ""
    for k, d in enumerate(days):
        x = 48 + k * 116
        cols += f'<div class="card" style="left:{x}px;top:200px;width:104px;height:350px;padding:0;justify-content:flex-start;align-items:center"><small style="margin:14px 0 0;font-size:26px">{d}</small></div>'
        slots = ["12:30", "19:30"] if k < 5 else ["12:30"]
        for j, s_ in enumerate(slots):
            tt = t3 + 0.3 + (k * 2 + j) * (s3 - 0.8) / 12
            cols += (f'<div style="position:absolute;left:{x + 8}px;top:{270 + j * 76}px;width:88px;height:62px;border-radius:8px;background:{ORANGE};color:#fff;'
                     f'font-size:22px;font-weight:900;display:flex;align-items:center;justify-content:center;opacity:0;animation:{a("pop", tt, .25)}">{s_}</div>')
    h += win(t3, T(4, 0), kick("SNS の投稿") + '<div class="msg" style="top:90px;font-size:48px">時間を決めて、自動で予約</div>' + cols)
    # 4: サイトの更新は、もう面倒でやりたくなかった（前の手作業に線を引く）
    t4, s4 = T(4, 0), S(4)
    h += win(t4, T(5, 0), kick("前のサイト")
             + '<div class="card" style="left:120px;top:200px;width:660px;height:200px;font-size:60px;align-items:center;color:#8A93A3">サイトの手作業の更新</div>'
             + f'<div class="strike" style="left:100px;width:700px;top:295px;animation:{a("strike", t4 + s4 - 1.0, .35)}"></div>')
    # 5: 浮いた時間は、ロボットの研究へ
    t5 = T(5, 0)
    h += win(t5, None, kick("浮いた時間は")
             + f'<div class="card" style="left:48px;top:230px;width:300px;height:200px;font-size:46px;opacity:0;animation:{a("up", t5 + 0.2)}"><small>いままでの</small>30〜45分</div>'
             + f'<div class="arrowR" style="left:372px;top:314px;opacity:0;animation:{a("show", t5 + 0.6, .2)}"></div>'
             + f'<div class="card or" style="left:420px;top:230px;width:432px;height:200px;font-size:50px;white-space:nowrap;opacity:0;animation:{a("pop", t5 + 0.9, .35)}"><small>これからは</small>ロボットの研究</div>')
    h += outro(T, OUTRO_K)   # 締め：サイトへの入口
    return h


def OVER(T):
    return stage_fx(T, fx=[dict(kind="rays", t=T(5, 0.9), d=3.0)])


FACE = [(-1, 0.0, 1.0, "joy"), (1, 0.0, 3.0, "trouble"), (2, 0.0, 2.5, "joy"), (5, 0.0, 3.0, "joy"), ("end", 0.0, 3.0, "smile")]
POSE = [(-1, 0.0, 1), (1, 2.0, 3), (2, 0.0, 2), (4, 0.0, 2), (5, 0.4, 4)]
LEAN = []
INTRO = "dash"
MOVES = [(1, 1.0, "shake", 1.0), (2, 0.4, "hop", 1.2), (3, 0.5, "tilt", 1.0), (5, 0.2, "jump", 1.0)]
SE = [(-1, 0.0, "se_whoosh", -9), (0, 1.4, "se_boot", -12), (1, 0.3, "se_tick", -12), (1, 0.8, "se_tick", -12), (1, 1.3, "se_tick", -12),
      (2, 0.0, "se_whoosh", -12), (2, 0.4, "se_ding", -11), (3, 0.0, "se_whoosh", -12), (4, 0.0, "se_whoosh", -12),
      (5, 0.9, "se_jaran", -10), (5, 0.9, "se_ding", -9)]
ENDING = dict(kind="jump", at=(5, 0.9))
