
    n_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d Zedk    r e             dS dS )    )PathNzQ/data/video-pipeline/HaTramAudio/project/020-Chiec-Nhan-Chi-Deo-Khi-Co-Nguoi-Nhinzrun-20260721T124541Z-88551d8aLevyu0   Chiếc Nhẫn Chỉ Đeo Khi Có Người Nhìnc                      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            	         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  }|                    d          r4|                    d          |k    st          t          dz            |k    rt          d          dt           d}d}g 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t          d |d!t          |          d"|d#|d$|d%g d&t          d'd(|t          |          d)d*d+}
t          d,z  }t          ||
           i |
t          |	          t          |	          t          |          t          |          t!                      d-}t          t          d.z  |           t#          t          j        dd||d/         d0d*1                     d S )2Nz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 invalidu   Truyện Audio | u    (Full) | Hạ Trâm Audiou  Khi hai người được chọn cho một cuộc liên hôn đồng loạt từ chối, Tạ Minh Dao và Phó Cảnh Tuyên tự nguyện thay chỗ để hấp thụ áp lực danh dự của hai gia tộc trong một trăm hai mươi ngày. Họ thống nhất chỉ đeo nhẫn khi có người nhìn, cho đến khi nhận ra điều mình muốn giữ lại không phải danh vị của người thay thế mà là lựa chọn riêng tư giữa hai người.)u   Ngôn tình đô thịu   Cưới trước yêu sauu	   Hào mônu
   Hài nhẹz

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_idr   r   statussource_canon_sha256source_story_brief_sha256canonical_title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.jsonrX   )rG   rC   rK   rX   )r8   )r(   r   r   r   r   r#   r$   r   TITLEjoinr5   r   r    lenr<   strr   printr;   )mcanonr@   promobriefytrN   rO   infoipmetadatampreceipts                r   mainrk      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4PiKiU		*  \>!:!:E!A!ASNeIeEfEfhmEmEm  uA  B[  u\  u\  o\9999 
_WWW	,,,,,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   r(   r5   r<   rk   __name__r   r   r   <module>ro      s                         	T
]^^cgcl_b  rQmp  X^  RW  eW  _d _ _ _ < < <= = =u u u R R RL L L Zr   