# -*- coding: utf-8 -*-
"""サイトの数字を聞く(ショート専用・舞台型・2026-11-07)
エイイチの言葉: 計測を Claude につなぐ部品(MCP)も作る「どうせいずれ必要そう」(2026-11-06)
事実: 主に見る数字は3つ(AIの利用者の依頼で読みに来た数・AIのサービスのリンクから来た人・サイト名で検索して来た人)。日ごとに集計して R2 に残す(MASTER の保存先テーブル)"""
from butai_parts import *
OUTRO_K = 6
NAME, VER = "サイトの数字を聞く", 3
HEAD = "サイトの数字
Claudeに聞く"
T_ON = (0, 0.6)
def scene(T, S):
h = CSS
# 0: サイトの数字、Claude から見られる?
t0 = T(*T_ON)
h += win(t0, T(1, 0), kick("サイトの計測")
+ f'
'
f'pixelstomotors.com
'
+ "".join(f'' for k in range(4))
+ f'?
')
# 1: 計測をつなぐ部品を作った(Claude ← 部品 → 計測)
t1, s1 = T(1, 0), S(1)
names = [("Claude", ""), ("つなぐ部品", "or"), ("計測", "")]
fl = "".join(f'{nm}
' for k, (nm, c) in enumerate(names))
h += win(t1, T(2, 0), kick("作ったもの") + fl)
# 2: 見る数字は、3つだけ
t2 = T(2, 0)
h += win(t2, T(3, 0), kick("見る数字")
+ f'3つだけ
')
# 3: 3つの中身(話している1つだけオレンジ)
t3, s3 = T(3, 0), S(3)
rows = ["AIが読みに来た数", "AIから来た人", "サイト名の検索"]
st = [0.1, s3 * 0.42, s3 * 0.7]
rr = ""
for k, nm in enumerate(rows):
an = a("up", t3 + st[k]) + ", " + a("on", t3 + st[k], .2)
if k < 2:
an += f", off{k} .2s linear {t3 + st[k + 1]:.3f}s forwards"
rr += (f'{k + 1}{nm}
')
h += win(t3, T(4, 0), f'' + rr)
# 4: どうせ、いずれ必要そう
t4 = T(4, 0)
h += win(t4, T(5, 0), kick("作った理由")
+ f'どうせ
いずれ必要
')
# 5: 毎日集計して、残している(日ごとの箱が積み上がる。数は出さない)
t5, s5 = T(5, 0), S(5)
days = ["月", "火", "水", "木", "金", "土", "日"]
cols = ""
for k, d in enumerate(days):
x = 48 + k * 116
cols += f'{d}
'
for j in range(3):
tt = t5 + 0.3 + (k * 3 + j) * (s5 - 0.6) / 21
c = ORANGE if j == 0 else FACE_2
cols += (f'')
h += win(t5, None, kick("毎日の集計") + '3つの数を、日ごとに残す
' + cols)
h += outro(T, OUTRO_K)
return h
def OVER(T):
return stage_fx(T, shakes=[(T(2, 0.6), 0.4)], fx=[dict(kind="shock", t=T(2, 0.6), d=1.4), dict(kind="rise", t=T(5, 0.2), d=2.6)])
FACE = [(-1, 0.0, 1.0, "smile"), (1, 0.0, 2.4, "joy"), (2, 0.0, 1.9, "wink"), (3, 0.0, 4.7, "smile"), (4, 0.0, 2.2, "think"), (5, 0.0, 2.6, "joy"), ("end", 0.0, 3.0, "smile")]
POSE = [(-1, 0.0, 1), (0, 0.0, 1), (2, 0.0, 3), (3, 0.0, 1), (4, 0.0, 2), (5, 0.6, 4)]
LEAN = []
INTRO = "dash"
MOVES = [(1, 0.2, "hop", 1.0), (2, 0.5, "jump", 0.9), (4, 0.4, "tilt", 1.0), (5, 0.3, "spin", 1.2)]
SE = [(-1, 0.0, "se_whoosh", -9), (0, 0.6, "se_boot", -12), (0, 2.0, "se_pop", -12), (1, 0.2, "se_pop", -14), (1, 1.5, "se_ding", -11),
(2, 0.6, "se_pechin", -9), (3, 0.1, "se_tick", -12), (3, 2.0, "se_tick", -12), (3, 3.35, "se_tick", -12),
(4, 0.2, "se_pop", -12), (5, 0.3, "se_rise", -12), (5, 1.8, "se_ding", -10)]
ENDING = dict(kind="none") # 下の段(曜日)にエイイチの頭がかかるので、締めで跳ばせない