
    i                    >   d Z ddlmZ ddlZddlZddlmZ ddlmZ ddl	m
Z
 e
dz  Ze
dz  Zed	z  d
z  Ze
dz  ZeZe
dz  Zej"                  j%                  d ee             ej"                  j%                  d ee             ddZddZddZedk(  r e        yy)uK  전체 18장 배너 재렌더링 — Gemini API 호출 없이 기존 배경 + 수정된 HTML/CSS만 Playwright 캡처.

배경 이미지 위치:
  M1: tools/ai-image-gen/output/v4-hybrid/m1-{1,2,3}-*/bg_m1_*.{png,jpg}
  M2: output/google-ads/banners/m2/m2-{1,2,3}-bg.jpg
  M3: tools/ai-image-gen/output/v4-hybrid/bg_m3_{1,2,3}.jpg
    )annotationsN)Path)sync_playwright)WORKSPACE_ROOTztools/ai-image-genzoutput/google-ads/banners/m2outputz	v4-hybridzoutput/google-ads/banners/m1zoutput/google-ads/banners/m3c           
        |j                   d|j                   dz  }|j                  | d       t               5 }|j                  j                  ddg      }	 |j                  ||d	      }|j                  d
|j                          d       |j                  d       |j                  t        |      ddd||d       |j                         j                  dz  }t        d|j                   d|dd       |j!                          	 ddd       |j#                  d       y# |j!                          w xY w# 1 sw Y   1xY w)u.   HTML을 Playwright로 캡처하여 PNG 저장._tmp_z.htmlzutf-8)encodingz--no-sandboxz--disable-gpu)args)widthheight)viewportfile://networkidle)
wait_untili  pngr   )xyr   r   )pathtypeclipi   z  [OK] z (z.0fz KB)NT)
missing_ok)parentstem
write_textr   chromiumlaunchnew_pagegotoresolvewait_for_timeout
screenshotstrstatst_sizeprintnamecloseunlink)	html_contentoutput_pathr   r   tmp_htmlpbrowserpagesize_kbs	            S/home/jay/workspace/.worktrees/task-2116-dev1/tools/ai-image-gen/rerender_all_18.pycapturer2   $   sC   !!eK,<,<+=U$CCHw7		 a**##./)J#K	##u-O#PDII 0 0 234IO!!$'OO%1uG  
 "&&(0047GGK,,-R}DABMMO  OOtO$ MMO s$   EB&D-E-D??EEc                F    t        |j                  |             }|r|d   S y)u8   글로브 패턴으로 배경 이미지를 찾습니다.r   N)listglob)pattern
search_dirmatchess      r1   find_bgr9   >   s%    :??7+,Gqz    c            
        t        j                          } t        d       t        d       t        d       d}d}ddlm}m} ddlm}m} ddlm}m} d||ddfd||d	d
fd||ddfg}	|	D ]  \  }
}}}}t        |z  }t        | d|      }|st        d|
 d| d| d       |dz  }>d|j                          }t        d|
 d|j                          |j                  |      }t        |t        |
 dz  dd       |dz  }|j                  |      }t        |t        |
 dz  dd       |dz  } ddlm}m} ddlm}m} ddlm}m} d||t&        d z  fd!||t&        d"z  fd#||t&        d$z  fg}|D ]  \  }
}}}|j)                         st        d|
 d| d%       |dz  }0t+        |j                               }t        d|
 d|j                           ||      }t        |t&        |
 dz  dd       |dz  } ||      }t        |t&        |
 dz  dd       |dz  } dd&lm}m}  dd&lm}!m}" dd&lm}#m}$ t        d'z  t        d(z  t        d)z  d*}%d+|| fd,|!|"fd-|#|$fg}&|&D ]  \  }
}}|%|
   }|j)                         st        d|
 d| d%       |dz  }4t        d|
 d|j                           ||      }t        |t6        |
 dz  dd       |dz  } ||      }t        |t6        |
 dz  dd       |dz  } t        j                          | z
  }'t        d.d        t        d/| d0| d1|'d2d3       t        d       y )4Nz<============================================================uA   전체 18장 배너 재렌더링 시작 (배경 재생성 없음)r   )HTML_1200x628HTML_1080x1080zm1-1z	m1-1-fairbg_m1_1_fairzm1-2zm1-2-leaderbg_m1_2_leaderzm1-3zm1-3-supportbg_m1_3_supportz.*z
[SKIP] u   : 배경 이미지 없음 (/z.*)   r   z
[u
   ] 배경: )bg_urlz-1200x628.pngi  it     z-1080x1080.pngi8  )build_html_1200x628build_html_1080x1080zm2-1zm2-1-bg.jpgzm2-2zm2-2-bg.jpgzm2-3zm2-3-bg.jpg))make_html_1200x628make_html_1080x1080zbg_m3_1.jpgzbg_m3_2.jpgzbg_m3_3.jpg)m3-1m3-2m3-3rJ   rK   rL   
u   재렌더링 완료: 성공 u   /18, 실패 u	   , 소요 z.1fu   초)timer&   gen_m1_1_fair_bannersr<   r=   gen_m1_2_leader_bannersgen_m1_3_support_bannersTMP_DIRr9   r    r'   formatr2   M1_OUTgen_m2_1rE   rF   gen_m2_2gen_m2_3M2_OUTexistsr#   gen_m3_1_bannersrH   rI   gen_m3_2_bannersgen_m3_3_bannersM3_OUT)(t0successfailm1_1_wm1_1_sm1_2_wm1_2_sm1_3_wm1_3_sm1_tasksr'   tmpl_wtmpl_ssubdir	bg_prefixbg_dirbgrC   html_whtml_sm2_1_wm2_1_sm2_2_wm2_2_sm2_3_wm2_3_sm2_tasksfn_wfn_sbg_pathbg_strm3_1_wm3_1_sm3_2_wm3_2_sm3_3_wm3_3_sm3_bgsm3_taskselapseds(                                           r1   mainr   H   s   	B	(O	
MN	(OGD
 XYZ 
n=	0@A	1BCH 4< /fffi6!	{"%v.IdV#>vha	{RUVWAID2::<.)D6BGG9-. f-D6!77sC1 f-D6!88$E1'. WVV 
-!78	-!78	-!78H &. !dD'~~IdV#>wiqIJAIDW__&'D6GLL>23fD6!77sC1fD6!88$E1& ]\\ -'-'-'F 
 	 	 H % dDD\yy{IdV#>rd!DEAIDD6BGG9-.bD6!77sC1bD6!88$E1& iikBG	Bxj/	(	dV9WUXMY\
]^	(Or:   __main__)
r*   r#   r+   r   r   intr   r   returnNone)r6   r#   r7   r   r   zPath | None)r   r   )__doc__
__future__r   sysrN   pathlibr   playwright.sync_apir   
gen_configr   TOOL_DIRM2_DIRrR   rT   rX   r]   r   insertr#   r2   r9   r   __name__ r:   r1   <module>r      s    # 
   / % 00	8	8
X

+	8	8		8	8 3x= ! 3v; 
%4pf zF r:   