
    i                    J   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  ed      Z	 ed      Z
e	dz  d	z  Z ed
      Ze
Z ed      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_playwrightz&/home/jay/workspace/tools/ai-image-genz0/home/jay/workspace/output/google-ads/banners/m2outputz	v4-hybridz0/home/jay/workspace/output/google-ads/banners/m1z0/home/jay/workspace/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	            [/home/jay/workspace/.worktrees/task-2116-dev1/tools/ai-image-gen/_backup/rerender_all_18.pycapturer1   #   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      r0   find_bgr8   =   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-3rI   rJ   rK   
u   재렌더링 완료: 성공 u   /18, 실패 u	   , 소요 z.1fu   초)timer%   gen_m1_1_fair_bannersr;   r<   gen_m1_2_leader_bannersgen_m1_3_support_bannersTMP_DIRr8   r   r&   formatr1   M1_OUTgen_m2_1rD   rE   gen_m2_2gen_m2_3M2_OUTexistsr"   gen_m3_1_bannersrG   rH   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bgrB   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(                                           r0   mainr   G   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\
]^	(Or9   __main__)
r)   r"   r*   r   r   intr   r   returnNone)r5   r"   r6   r   r   zPath | None)r   r   )__doc__
__future__r   sysrM   pathlibr   playwright.sync_apir   TOOL_DIRM2_DIRrQ   rS   rW   r\   r   insertr"   r1   r8   r   __name__ r9   r0   <module>r      s    # 
   / 89	@	A
X

+	@	A		@	A 3x= ! 3v; 
%4pf zF r9   