
    iG^jI                        d dl mZ d dlZd dlZd dlZd dlmZ  ed          ZdZdZ	dZ
d dZd!dZd"d#dZd$dZd%dZd!dZd!dZd!dZd!dZedk    r e             dS dS )&    )annotationsN)PathzE/data/video-pipeline/HaTramAudio/project/014-Nguoi-Ve-Ban-Do-Mua-Dongz014-Nguoi-Ve-Ban-Do-Mua-Dongzrun-20260720T152357Z-c85a2128zoropathr   returnstrc                   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)fs   work/build_render_request.py<lambda>zsha.<locals>.<lambda>   s    !&&"9"9     r   )hashlibsha256openiterupdate	hexdigest)r   hblockr   s      @r   shar      s    A	4 A99993?? 	 	EHHUOOOO	               ;;==s   ,A##A'*A'Nonec                    t          j        t          dz                      d                    } t          t
          t          dd                                D ]0\  }}|                     |          |k    rt          d|           1d S )Nz.ownership-lock.jsonutf-8encodingmain_session_pipeline)
project_idrun_idownerstatuszownership mismatch: )
jsonloadsROOT	read_text
PROJECT_IDRUN_IDOWNERitemsgetRuntimeError)lockkeyvalues      r   guardr1      s    :t44???QQRRD%/6E]tuu{{}} = =
U88C==E!!;c;;<<< "= =r   	completedallowed_statusestuple[str, ...]dictc                ~   t          j        |                     d                    }|                    dt                    t          k    s|                    d          t
          k    rt          d|            |                    d          |vs|                    d          durt          d	|            |S )
Nr   r   r    r!   zreceipt identity mismatch: r#   verifiedTzreceipt not terminal/verified: )r$   r%   r'   r,   r(   r)   r-   )r   r4   datas      r   read_verifiedr:      s    :dnngn6677Dxxj))Z77488H;M;MQW;W;W???@@@xx!111TXXj5I5IQU5U5UCTCCDDDKr   expectedlabelc                x    |                                  rt          |           |k    rt          | d          d S )Nz artifact hash mismatch)is_filer   r-   )r   r;   r<   s      r   ensure_hashr?   '   sA    <<>> >SYY(22e<<<=== 32r   stagepayloadbindingsc                   t                       t          dz  | z  t          z  }|                    dd           |dz  }|dz  }|                    t          j        |dd          d	z   d
           t          |          |d<   |                    t          j        |dd          d	z   d
           t          t          j        | t          |          |d         dd                     d S )NworkT)parentsexist_okzrequest.jsonzrequest-bindings.jsonF   )ensure_asciiindent
r   r   request_sha256)r@   requestrK   )rH   )
r1   r&   r)   mkdir
write_textr$   dumpsr   printr   )r@   rA   rB   rD   request_pathbinding_paths         r   write_requestrS   ,   s   	GGG&=5 6)DJJtdJ+++.(L11LDJwU1MMMPTT_fggg!$\!2!2HDJxeANNNQUU`ghhh	$*u\1B1BV^_oVpqq  AF  G  G  G  H  H  H  H  Hr   c                 T   t          t          dz  dz            } t          t          dz  dz            }t          t          dz  dz  d          }|                    d          p|                    d          }|                     d          |k    s|                    d          |k    rt          d	          t          d
z  dz  }t          dz  dz  dz  }t	          || d         d           t	          ||d         d           i dt          |          ddddddd
t          |          dt          t          dz  dz  dz            dddddd d!d"d#d$d%d&d'd(d)d*d+d"d,d-d.d/d0d1i}t          d|t          t          || d         |d         |d         d2           d S )3Nscriptztts-manifest.jsonimagezlayout-manifest.jsonzpromotion-report.json)passedr3   completed_content_onlycanon_sha256source_canon_sha256zfootage upstream canon mismatchaudiozstory-full.wav
normalizedzlayout-1920x1080.pngoutput_sha256TTSlayout_sha256layoutfootage_dirz(/data/video-pipeline/GacMaiAudio/footagepatternz*.mp4	recursiveToutputfootagefootage.mp4seedigx	overwriteFwidth  height8  fps   center_xi  center_yr   center_widthi`  center_heightvideo_encoder
h264_nvencpresetp4cq   )r    r!   rZ   source_audio_sha256source_layout_sha256rd   )	r:   r&   r,   r-   r?   r   rS   r(   r)   )ttsr`   	promotion
canon_hashr[   layout_pathrA   s          r   re   re   8   sO   
x*==
>
>C4'>,BBCCFdXo0GGIz{{I~..V)--@U2V2VJ
ww$%%33vzzBW7X7X\f7f7f<===7N--E.</2HHKs?+U333VO4h???#k""A 	7 	T	
 	U 	#dXo	1MABB 	
 	U 	 	$ 	r 	C 	A 	 	  	!" 	$#$ 	b% G( )W )"?3 & 7(#' '     r   c                    t          t          dz  dz            } t          t          dz  dz            }t          dz  dz  dz  }t          dz  dz  dz  }t          || d	         d           t          ||d	         d           |                    d
i                               d          st	          d          | d         |d         k    rt	          d          t          |          t          |          t          t          dz  dz            dddddddd
}t          d|t          t          | d         | d	         |d	         |d         d           d S )Nlogzintro-render.jsonzfootage-render.jsonrd   introz	intro.mp4re   rf   artifact_sha256	visual_qar8   z!footage visual QA is not verifiedrZ   zfinal upstream canon mismatch	final.mp4Frn   rj   rl   rt   rv   rx   )
intro_video_pathfootage_video_pathoutput_video_pathrh   rm   ri   rk   rs   ru   rw   finalr   )r    r!   rZ   source_intro_sha256source_footage_sha256rd   	r:   r&   r?   r,   r-   r   rS   r(   r)   )r   footage_receipt
intro_pathfootage_pathrA   s        r   r   r   a   s   $,)<<==E#D5L3H$HIIO7*[8J(?Y.>L
E"34g>>>o.?@)LLL{B//33J?? @>???"#7L'MMM:;;;
OO!,// ;!>??% G '7 $%:;$%67!01B!C-.% %     r   c            
        t          t          dz  dz            } t          dz  dz  }t          || d         d           |                     di                               d          st	          d	          t          |          t          t          dz  d
z            dddddddd	}t          d|t          t          | d         | d         |d         d           d S )Nr   zfinal-render.jsonrd   r   r   r   r   r8   zfinal visual QA is not verifiedzfinal-upload.mp4i /i ʚ;rj   rl   rn   `   F)	input_video_pathr   target_output_bytesmax_output_bytesri   rk   rm   audio_bitrate_kbpsrh   	transcoderZ   r   )r    r!   rZ   source_final_sha256rd   r   )final_receipt
final_pathrA   s      r   r   r      s    !$,1D"DEEM;.J
M*;<gFFF["--11*== ><===
OO 3E!EFF(& 
 
G +w ,-BC,->?-.) )     r   c                     t          j                    } |                     dg d           |                                 }t	                       t          t          t          d|j                              d S )Nr@   )re   r   r   )choices)	argparseArgumentParseradd_argument
parse_argsr1   re   r   r   r@   )parserargss     r   mainr      sm    $&&F
)J)J)JKKKD	GGG%i@@LNNNNNr   __main__)r   r   r   r   )r   r   )r2   )r   r   r4   r5   r   r6   )r   r   r;   r   r<   r   r   r   )r@   r   rA   r6   rB   r6   r   r   )
__future__r   r   r   r$   pathlibr   r&   r(   r)   r*   r   r1   r:   r?   rS   re   r   r   r   __name__ r   r   <module>r      sJ   " " " " " "         tSTT+
	(   = = = =    > > > >
	H 	H 	H 	H& & & &R   B   4O O O O zDFFFFF r   