from pathlib import Path
from PIL import Image,ImageDraw,ImageFont
import json
root=Path('/tmp/issue-lead-33443-r1/evidence-capture/20261109T170330Z-final')
metrics=json.loads((root/'diff-metrics.json').read_text())
font=ImageFont.load_default(size=16)
for row in ['E0','E1','E2']:
 pairs=[p for p in metrics if Path(p['before']).name.startswith(row+'-')]
 lines=[]
 for pair in pairs:
  items=[]
  for key in ['before','after','diff0','diffT']:
   im=Image.open(root/pair[key]).convert('RGB');im.thumbnail((390,710));items.append(im)
  height=max(i.height for i in items)+90;line=Image.new('RGB',(1600,height),'#d0d0d0');draw=ImageDraw.Draw(line)
  for n,(key,im) in enumerate(zip(['before','after','diff0','diffT'],items)):
   draw.text((n*400+8,8),Path(pair[key]).stem,font=font,fill='black')
   ref='7b248349bd' if key=='before' else '58adedf070' if key=='after' else '7b248349bd -> 58adedf070'
   if 'remote-final/' in pair['before']:ref='UI 58adedf070; probe '+('7b248349bd' if key=='before' else '58adedf070' if key=='after' else 'before -> after')
   draw.text((n*400+8,32),ref,font=font,fill='black')
   line.paste(im,(n*400,66))
  lines.append(line)
 sheet=Image.new('RGB',(1600,sum(i.height for i in lines)),'#d0d0d0');y=0
 for line in lines:sheet.paste(line,(0,y));y+=line.height
 sheet.save(root/(row+'-sheet.png'))
 if row=='E0':
  a=Image.open(root/'E0-before-1440-dark.png').crop((1000,55,1280,225));b=Image.open(root/'E0-after-1440-dark.png').crop((1000,55,1280,225))
  focus=Image.new('RGB',(600,215),'#d0d0d0');d=ImageDraw.Draw(focus);d.text((8,8),'Before 7b248349bd',font=font,fill='black');d.text((308,8),'After 58adedf070',font=font,fill='black');focus.paste(a,(0,40));focus.paste(b,(300,40));focus.save(root/'E0-before-after-focus.png')
print('Created three evidence sheets and an E0 detail pair.')
