
    e`j                         d dl mZ d dlZd dlZd dlZd dlZ ed          Zej        ZdZ	dZ
d Zd Zd Zd	 Zd
 Zd Zedk    r e             dS dS )    )PathNzR/data/video-pipeline/HaTramAudio/project/028-Nguoi-Thay-Ten-Tren-Tam-Bien-Cua-Hangzrun-20260722T063856Z-87753fd5Levyc                      t           j                             t           j        j                                                                      dd          S )Nz+00:00Z)datetimenowtimezoneutc	isoformatreplace     work/build_metadata.pyr   r      s<    "&&x'8'<==GGIIQQRZ[^__
_r   c                 r    t          j        |                                                                           S )N)hashlibsha256
read_bytes	hexdigest)ps    r   shar      s%    '.00::<<<r   c                     t          j        t          dz                                            } t          t
          t          d                                D ]0\  }}|                     |          |k    rt          d|z             1d S )Nz.ownership-lock.json)
project_idrun_idownerzownership mismatch )
jsonloadsROOT	read_textPIDRUNOWNERitemsgetRuntimeError)dkvs      r   guardr(      s~    :t**557788s599??AA = =SQqUU1XXq[[|$9!$;<<<[= =r   c                     t                       | j                            dd           |                     d| j        z   dz             }|                    |           t          j        ||            d S )NT)parentsexist_ok.z.tmp)r(   parentmkdir	with_namename
write_textosr   )r   sts      r   atomic_textr5      sm    d	3	3	3akk#af*VBS6T6TAUVUaUabcUdUdUdegeopqrsetetetetetr   c                 V    t          | t          j        |dd          dz              d S )NF   )ensure_asciiindent
)r5   r   dumps)r   r%   s     r   atomic_jsonr<      s-    [4:aU!#L#L#LT#QRRRRRr   c            	      0   t                       t          j        t          dz                                            } |                     d          }|                     di                               di           }|                     di                               d          dk    s0|                    d          dus|                    d          |k    rt          d	          t          j        t          d
z                                            }t          dz  }t          j        |                                          }|                    d          r4|                    d          |k    st          t          dz            |k    rt          d          |                    d          t          k    s|                    d          t          k    rt          d          |d         }|d         }|d         |d         g}d}	d| d}
dt          |
          cxk    rdk    sn t          d          |
 d|	 dd                    |          z   dz   }t          dz  }t          ||           i d d!d"t          dt          dt          d#dddd$|d%t          |          d|d&|
d't          |
          d(|	d)|	d*|d+g d,|d-d.|t          |          d/d0d1}t          d2z  }t          ||           i |t          |          t          |          t          |          t          |          t                      d3}t          t          d4z  |           t!          t          j        dd|
|d5         d6d07                     d S )8Nzscript/project-manifest.jsoncanon_sha256gate_eventsstorysteps	completedverifiedTz#Story Gate is not committed/currentzscript/promotion-report.jsonzscript/story-brief.jsonzstory/story-canon.txtzcanon promotion invalidr   r   zstory brief identity mismatchcanonical_titlestory_familyprimary	secondaryu  Lâm Vãn Ý sống bằng nghề giữ chỗ cho những người không thể tự xếp hàng, còn Chu Cảnh Thâm thiết kế hệ thống lịch số với mục tiêu khiến nghề ấy biến mất. Một sự cố tại Trung tâm Hành chính Minh Châu buộc hai người cùng khảo sát những người bị bỏ ngoài luồng phục vụ và đối diện những lỗ hổng trong chính công việc của mình.u   Truyện Audio | u    (Full) | Hạ Trâm Audior7   d   zyoutube title length invalidz

u   

Thể loại: z, ut   

Truyện được phát độc quyền tại Hạ Trâm Audio, nghiêm cấm sao chép dưới mọi hình thức
zoutput/info.txtschema_version   source_project_idstatussource_canon_sha256source_story_brief_sha256youtube_titletitle_lengthdescriptionsummarygenrestagsthumbnail_textcopyright_lineuq   Truyện được phát độc quyền tại Hạ Trâm Audio, nghiêm cấm sao chép dưới mọi hình thức)story_canonstory_briefF)authority_sha256contains_spoiler_revealzscript/metadata.json)artifact_pathartifact_sha256metadata_json_pathmetadata_json_sha256completed_atzlog/metadata.jsonr\   )rL   rC   rO   r\   )r8   )r(   r   r   r   r   r#   r$   r   r   r    lenjoinr5   r<   strr   printr;   )mcanonr@   promobrief
brief_datatitlefamilyrS   rR   ytinfoipmetadatampreceipts                   r   mainrq      s   4:t::EEGGHHquuUcOdOduu]2""72..EE'"'""K//599Z3H3HPT3T3TX]XaXabpXqXqsxXxXx  @L  Mr  @s  @s  zsz466AACCDD4PiKiUuyu  AF  AP  AP  AR  AR  vS  vSjt		*  \>!:!:E!A!ASNeIeEfEfhmEmEm  uA  B[  u\  u\  o\NN<  #%%)A)A3)F)F\ZyMzMzGz#$>"6)+<VK=P*Q6 
9999	3r77Cl+IJJJ	,,,,,TYYv->->>  @y  y	;r$/// A  1#  l3  xPS  T\]h  istx    zO  PU    Vq  ru  v{  r|  r|    }N  OT    Ud  eg    hv  wz  {}  w~  w~    L  MT    U^  _f    go  pv    w}  ~@    AQ  RW    Xh  i\    D  SV  W\  S]  S]  p^  p^  y~      	Bx 8 8 8  BQH  BQ]`ac]d]dwz{}w~w~  UX  Y[  U\  U\  tw  xz  t{  t{  KN  KP  KP  BQ  BQ  BQ  R]  ^b  cv  ^v  w~  R  R  R  @E  FJ  FP  [f  rv  GI  \c  du  \v  Qw  Qw  EJ  FK  FK  FK  @L  @L  @L  @L  @Lr   __main__)pathlibr   r   r   r   r2   r   r0   r   r    r!   r   r   r(   r5   r<   rq   __name__r   r   r   <module>ru      s                         	T
^__dhdm`c  sRnq  Y_  SX _ _ _ < < <= = =u u u R R RL L L  Zr   