
    ̣`j                        d dl Z d dlZd dlZd dlZd dlZd dlmZmZ d dlmZ  ee	          
                                j        d         Zedz  Zedz  Zedz  Zedz  Zed	z  Zed
z  Zd Zd Zd Zd Zedk    r\	  ej         e                       dS # e$ r9Z ed ee          z   ej                    ej        d           Y dZ[dS dZ[ww xY wdS )    N)datetimetimezone)Path   zimage/left-panel-master.pngzimage/right-panel-master.pngzlog/image-visual-qa.jsonzstory/promotion.jsonzimage/layout-1920x1080.pngzimage/layout-manifest.jsonc                    t          j                    }|                     d          5 t          fdd          D ]}|                    |           	 d d d            n# 1 swxY w Y   |                                S )Nrbc                  .                          d          S )Ni   )read)handles   /data/video-pipeline/Chanel-HuyenAnAudio/project/016-Ngay-Chung-Toi-Nop-Don-Ly-Hon-Anh-Dua-Toi-Ban-Hon-Uoc-Khong-Con-Dieu-Khoan-Nao/script/build-layout.py<lambda>zsha.<locals>.<lambda>   s    &++o">">     r   )hashlibsha256openiterupdate	hexdigest)pathdigestblockr   s      @r   shar      s    ^F	4 !F>>>>DD 	! 	!EMM%    	!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! s   ,A##A'*A'c                     t          j        ddddddddd	t          |           g
d
d
d
          }t          j        |j                  d         d         S )Nffprobez-verrorz-select_streamszv:0z-show_entriesz&stream=codec_name,width,height,pix_fmtz-ofjsonT)capture_outputtextcheckstreamsr   )
subprocessrunstrr   loadsstdout)r   results     r   prober'      sz    ^	D'#4e_Nvx}  @F  HK  LP  HQ  HQ  	R$d  F :fm$$Y/22r   c                     |                      | j        dz             }|                    t          j        |dd          dz   d           t          j        ||            d S )Nz.partF   )ensure_asciiindent
utf-8encoding)	with_namename
write_textr   dumpsosreplace)r   valuetemps      r   atomic_jsonr8   #   s_    >>$)g-..DOODJu5CCCdJU\O]]]JtTr   c                  
   t           t          t          t          fD ](} |                                 st          d|            )t          j        t                              d                    }t          j        t                              d                    }|	                    d          dus,|	                    d          |	                    d          k    rt          d          |	                    d	i           }d
t           fdt          ffD ]\  }} |	                    |i           	                    d          dk    sY|	                    |i           	                    d          dk    s,||         	                    d          t          |           k    rt          d|           t          j                            dd           t                              t          j        dz             }|                                r|                                 d}t%          j        ddddddt)          t                     dt)          t                    d|ddddddt)          |          gd            t+          |          }|	                    d!          d"k    s6|	                    d#          d$k    s|                                j        d%k     rt          d&|           t1          j        |t                     t+          t                    }i d'd(d)d*ddd|d         d+d,d-d.d/d0g d1d2d3d4d5dd6t)          t                               t6                              t          t                     t+          t                     d7t)          t                              t6                              t          t                    t+          t                    d7d8d9t)          t                              t6                              t          t                    t                                          j        |d:d;d"d$d<d=d>d>d?d$d@d?d>dAd$ddBdCd>d?d$d@dDdEt)          t                              t6                              dFt          t                    dGdHdIdJdKt9          j        t<          j                                                   }tC          tD          |           tG          t          j$        d|d)         d,t)          t                    |d9         d         |dLdHM                     d>S )NNz#missing local-layout prerequisite: r-   r.   verifiedTsource_canon_sha256canonical_sha256z%image Visual QA/canon binding invalidassets
left_panelright_panel
typographyPASS	semanticsr   zimage QA hash mismatch: )parentsexist_okz	.part.pngaY  [0:v]scale=656:1080:force_original_aspect_ratio=decrease:flags=lanczos,pad=656:1080:(ow-iw)/2:(oh-ih)/2:color=0x101820[left];[1:v]scale=656:1080:force_original_aspect_ratio=decrease:flags=lanczos,pad=656:1080:(ow-iw)/2:(oh-ih)/2:color=0x101820[right];color=c=0x101820:s=608x1080:r=1[center];[left][center][right]hstack=inputs=3,format=rgb24[out]ffmpegz-hide_bannerz	-loglevelr   z-yz-iz-filter_complexz-mapz[out]z	-frames:v1z-threads)r   widthi  heighti8  i zlocal layout probe failed: versionr)   statusbuilt_pending_visual_qabuilder_locationagent_localbuilder_toolFFmpegzJscale(force_original_aspect_ratio=decrease,flags=lanczos)+pad+color+hstackrgb24)          )r1   filterspixel_formatbackground_rgb	operationzBlocal static-image normalize/resample/crop/canvas composition onlyremote_layout_build_forbiddensource_panels)r   r   r'   )leftrightoutput)r   r   bytesr'   canvas)rG   rH   regionsr   i  )xyrG   rH   i`  )r`   ra   rG   rH   cleani  )rZ   centerr[   image_visual_qa_receiptimage_visual_qa_sha256	visual_qaFpending)r:   rJ   built_at)r:   rJ   rL   r\   r   r'   )r*   )%LEFTRIGHTIMAGE_QA	PROMOTIONis_fileRuntimeErrorr   r$   	read_textgetr   OUTPUTparentmkdirr0   stemexistsunlinkr!   r"   r#   r'   statst_sizer4   r5   relative_toPROJECTr   nowr   utc	isoformatr8   RECEIPTprintr3   )	r   qa	promotionqa_rowsassetr7   filtergraphstreamreceipts	            r   mainr   )   s   uh	2 M M||~~ 	MKTKKLLL	M	H&&&88	9	9B
9...@@AAI	vvj%%0E)F)F)--XjJkJk)k)kBCCCffXr""G%t,}e.DE C Ct;;ub!!%%l33v==UTVAWAWA[A[\gAhAhlrArArv}  D  wE  wI  wI  JR  wS  wS  WZ  [_  W`  W`  w`  w`A%AABBB w` Mt444FK+566D{{}} 	A  N	>;tSYYPTVYZ_V`V`	K+sJX[]`ae]f]f	h   
 4[[Fzz'd""fjj&:&:d&B&BdiikkFY\bFbFbAAABBBJtV6]]F1+ 	D 	y);<	
 	M 	c#*ll	
 
 	Y 	( 	 !1!1'!:!:;;s4yy[`ae[f[fgg!%"3"3G"<"<==U^cdi^j^jkk
 
$ 	3v11'::;;s6{{]c]h]h]j]j]r  ~D  E  E%& 	DD11'( 	!cTBBa#PTUUa#FF
 
)2 	"3x';';G'D'D#E#E34 	!#h--56 	%9==78 	HL..88::9G< !!!	$*$'(2CYfruv|r}r}  JQ  RZ  J[  \d  Je  pv  w  w  FK  L  L  L  M  M  M1r   __main__zLocal layout blocked: )file)r   r   r4   r!   sysr   r   pathlibr   __file__resolverC   rz   ri   rj   rk   rl   rq   r~   r   r'   r8   r   __name__exit	Exceptionexcr   r#   stderr r   r   <module>r      s     				     



 ' ' ' ' ' ' ' '      
$x..
 
 
"
"
*1
-..00//,,		/	/
0
0  3 3 3  C C CL z   &S1
CCCC s   <B C.CC