import pathlib,json,subprocess
from PIL import Image,ImageDraw,ImageFont
root=pathlib.Path('/tmp/lead-32924-r1/evidence-capture');run=pathlib.Path((root/'latest-capture.txt').read_text())
font=ImageFont.truetype('/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf',18)
for result in json.loads((run/'results.json').read_text()):
 row=result['row']['id'];side=result['side'];name=f'{row}-{side}'
 times=([0.5,2.5,4.5,6.8,8.6,10.8] if row=='R1' else [0.5,2.8,5.8,8.8,10.8] if row in ['R3','R4'] else [0.5,2.8,5.8,7.5])
 shots=[]
 for i,t in enumerate(times):
  dst=run/f'{name}-review-{i}.png'
  subprocess.run(['ffmpeg','-y','-loglevel','error','-ss',str(t),'-i',str(run/f'{name}.mp4'),'-frames:v','1',str(dst)],check=True)
  img=Image.open(dst).convert('RGB');img.thumbnail((720,600))
  shots.append((img,t))
 w=max(i.width for i,t in shots);h=max(i.height for i,t in shots)
 cols=2;sheet=Image.new('RGB',(w*cols,(h+36)*((len(shots)+1)//2)+40),'#e7e9ee');draw=ImageDraw.Draw(sheet)
 draw.text((10,10),name+' recording review: full viewport frames',font=font,fill='black')
 for i,(img,t) in enumerate(shots):
  x=i%cols*w;y=40+i//cols*(h+36);draw.text((x+10,y+8),f'{t:.1f}s',font=font,fill='black');sheet.paste(img,(x,y+36))
 sheet.save(run/f'{name}-recording-review.png')
print(str(run))
