
    iG^j                        d dl mZ d dlZd dlZd dlmZmZ d dlmZ  ed          ZdZ	dZ
dZed	z  d
z  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)datetimetimezone)PathzE/data/video-pipeline/HaTramAudio/project/014-Nguoi-Ve-Ban-Do-Mua-Dongz014-Nguoi-Ve-Ban-Do-Mua-Dongzrun-20260720T152357Z-c85a2128zorologzpublish-ready.jsonreturnstrc                     t          j        t          j                                                                      dd          S )Nz+00:00Z)r   nowr   utc	isoformatreplace     work/audit_publish_ready.pyr   r      s0    <%%//1199(CHHHr   pathr   c                   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   r   <lambda>zsha.<locals>.<lambda>   s    !&&"9"9 r   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)dkeyvalues      r   guardr;      s    
D11<<g<NNOOA%/6E]tuu{{}} = =
U55::;c;;<<< = =r   relstatusestuple[str, ...]dictc                   t           | z  }t          j        |                    d                    }|                    dt
                    t
          k    s|                    d          t          k    rt          d|            |                    d          dus|                    d          |vrt          d	|            |S )
Nr&   r'   r*   r+   zidentity mismatch: verifiedTr-   znot terminal verified: )r0   r.   r/   r1   r6   r2   r3   r7   )r<   r=   r   datas       r   loadrC   #   s    #:D:dnngn6677Dxxj))Z77488H;M;MQW;W;W666777xx
4''488H+=+=X+M+M:S::;;;Kr   expectedlabelc                    |                                  st          d|           t          |           }||k    rt          d|           t          |           ||                                 j        dS )Nzmissing artifact: zartifact hash mismatch: )r   r   bytes)is_filer7   r#   r
   statst_size)r   rD   rE   actuals       r   matchrL   -   sw    <<>> 9777888YYF=e==>>>II$))++:MNNNr   c                    t                       t          dd          } t          dd          }t          dd          }t          dd          }t          dd          }t          dd          }t          d	d          }t          d
d          }|                     d          p|                     d          }|||||||d}	|	                                D ]0\  }
}|                    d          |k    rt	          d|
           1|                    di                               d          st	          d          |                    di                               d          st	          d          t          t          dz  dz  |d          t          t          dz  dz  | d         d          t          t          dz  dz  |d         d          t          t          dz  dz  dz  |d          d!          t          t          d"z  d#z  d$z  |d%         d#          t          t          d"z  d&z  d'z  |d%         d&          t          t          d"z  d(z  |d%         d)          t          t          d"z  d*z  |d%         d+          t          t          d"z  d,z  |d%         d-          d.	}|d+         d/         d0k    rt	          d1          |                    d2          |d)         d3         k    rt	          d4          |                    d5          |d&         d3         k    s%|                    d6          |d#         d3         k    rt	          d7          |                    d8          |d         d3         k    s%|                    d9          |d!         d3         k    rt	          d:          d;t          t          d<d=||d=d=d>d=d=d=t                      d?}t                       t                              t          j        |d@dAB          dCz   dDE           t          t          j        d<d=|d+         d/         dFd@G                     d S )HNzscript/promotion-report.json)passed	completedcompleted_content_onlyzscript/tts-manifest.json)rO   zimage/layout-manifest.jsonzlog/intro-render.jsonzlog/footage-render.jsonzlog/final-render.jsonzlog/transcode-upload.jsonzlog/metadata.jsoncanon_sha256source_canon_sha256)ttslayoutintrofootagefinal	transcodemetadatazcanon binding mismatch: 	visual_qarA   zfootage visual QA missingzfinal visual QA missingstoryzstory-canon.txtcanonzspoken-narration.txtspoken_narration_sha256	narrationaudiozstory-full.wavoutput_sha256rS   image
normalizedzlayout-1920x1080.pnglayout_sha256rT   outputrU   z	intro.mp4artifact_sha256rV   zfootage.mp4z	final.mp4rW   zfinal-upload.mp4upload_copyzinfo.txtrY   )	r\   r^   rS   rT   rU   rV   rW   rf   rY   rG   i ʚ;z,upload copy is not under 1,000,000,000 bytessource_final_sha256r   z'transcode direct-upstream hash mismatchsource_footage_sha256source_intro_sha256z#final direct-upstream hash mismatchsource_audio_sha256source_layout_sha256z%footage direct-upstream hash mismatch   readyT)rV   rW   )schema_versionr*   r+   r-   rA   rR   	artifactsrZ   upload_copy_under_one_gbpostiz_upload_allowed.postiz_schedule_allowed_after_calendar_recheck
audited_atF   )ensure_asciiindent
r&   r'   )r-   rA   upload_copy_bytes)ru   )r;   rC   r6   r5   r7   rL   r0   r2   r3   r   OUTPUT
write_textr.   dumpsprint)	promotionrS   rT   rU   rV   rW   rX   rY   
canon_hashreceiptsnamereceiptro   reports                 r   mainr   6   s   	GGG35fggI
)>
:
:C.??F(.99E,n==G(.99E0.AAI'88H~..V)--@U2V2VJfu[`ox  GO  P  PH!)) B Bg;;,--;;@$@@AAA <;;{B''++J77 8677799["%%))*55 64555tg~(99:wOO4'>,BBINgDhjuvvTG^&66O8LeTTw58NNPVWfPgiqrrth0;>FW@XZabb94}DgN_F`bkllth4e<M6NPWXXTH_/AA9M^C_anoo$/J6AR8SU_``
 
I (M99IJJJ}}*++y/A(/KKKDEEEyy())Yy-A(-KKKuyyYnOoOos|  ~E  tF  GO  tP  PP  PP@AAA{{())Yu-=h-GGG7;;WmKnKnr{  }E  sF  GO  sP  LP  LPBCCC )!%55$(!%:>ee F 
GGG
djeAFFFMX_```	$*TPYZgPhipPqrr  BG  H  H  H  I  I  I  I  Ir   __main__)r	   r
   )r   r   r	   r
   )r	   r$   )r<   r
   r=   r>   r	   r?   )r   r   rD   r
   rE   r
   r	   r?   )
__future__r   r   r.   r   r   pathlibr   r0   r2   r3   r4   ry   r   r#   r;   rC   rL   r   __name__r   r   r   <module>r      s*   " " " " " "   ' ' ' ' ' ' ' '      tSTT+
	(	,	,I I I I   = = = =   O O O O6I 6I 6I 6Ir zDFFFFF r   