import json,subprocess,pathlib
import sys
root=pathlib.Path(sys.argv[1])
data=json.loads((root/'browser-timings.json').read_text())
from datetime import datetime
for side,sha in [('before','5cff012416'),('after','b27546bf7e')]:
    req=data[side][-1]; start=datetime.fromisoformat(data['recordings'][side+'Start'].replace('Z','+00:00')).timestamp()*1000
    offset=(req['startedAt']-start)/1000;end=offset+req['durationMs']/1000
    (root/(side+'-title.txt')).write_text(f'{side.title()} | {sha} | Chromium 1280 x 800 | Light theme | Live GitHub')
    (root/(side+'-pending.txt')).write_text('vcs.refreshStatus: request pending (measured on the real app socket)')
    (root/(side+'-done.txt')).write_text(f'vcs.refreshStatus: response received in {req["durationMs"]:,} ms | main | PR: none')
    filters=rf'scale=1280:800,drawbox=x=762:y=741:w=110:h=28:color=white:t=fill,pad=iw:ih+96:0:0:color=0x101827,drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf:textfile={root}/{side}-title.txt:x=20:y=817:fontsize=19:fontcolor=white,drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf:textfile={root}/{side}-pending.txt:x=20:y=853:fontsize=20:fontcolor=yellow:enable=between(t\,{offset}\,{end}),drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf:textfile={root}/{side}-done.txt:x=20:y=853:fontsize=20:fontcolor=0x77ee99:enable=gte(t\,{end})'
    subprocess.run(['ffmpeg','-y','-i',str(root/(side+'-raw.mp4')),'-t','12','-vf',filters,'-c:v','libx264','-crf','20','-pix_fmt','yuv420p','-an',str(root/(side+'.mp4')),'-loglevel','error'],check=True)
    subprocess.run(['ffmpeg','-y','-ss','10','-i',str(root/(side+'.mp4')),'-frames:v','1',str(root/(side+'-review.png')),'-loglevel','error'],check=True)
