
    ^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 )    )PathNzF/data/video-pipeline/HaTramAudio/project/017-Tam-Ve-Khong-Ghi-Diem-Denzrun-20260721T030911Z-51bf7fe4Levyu#   Tấm Vé Không Ghi Điểm Đế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                                            } t          dz  }| d         }|                     d          r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*         d+d%,                     d S )-Nzscript/promotion-report.jsonzscript/story-brief.jsoncanon_sha256verifiedzstory/story-canon.txtzcanon promotion invalidu   Truyện Audio | u    (Full) | Hạ Trâm AudiouQ  Tại quầy hành lý thất lạc của một ga tàu cao tốc ở Hàng Châu, Tạ Minh Ý nhận được chiếc vali cũ chứa một tấm vé không ghi điểm đến. Manh mối ấy kéo cô trở lại câu hỏi gia đình đã bị bỏ ngỏ nhiều năm và buộc cô hợp tác với kỹ sư phục hồi tuyến đường sắt Giang Tự Hành. Giữa hồ sơ cũ, những chuyến tàu lỡ nhịp và các lựa chọn không thể làm thay người khác, họ dần học cách trao cho nhau sự thật, ranh giới và một cơ hội để cùng bước tiếp.)u   Ngôn tình đô thịu   Bí ẩn đời thườngu   Chữa lànhDramaz

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	completedT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.jsonrV   )rD   r?   rI   rV   )r8   )r(   r   r   r   r   r#   r   r$   TITLEjoinr5   r   r    lenr<   strr   printr;   )promobriefcanonytrL   rM   infoipmetadatampreceipts              r   mainrh      s   tz4 >>IIKKLLSWXqSqUx}  M  yNrw		*wT*A%A!B!BE!I!IP\]vPwPwJw9999 
]	UUU	,,,,,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!   rZ   r   r   r(   r5   r<   rh   __name__r   r   r   <module>rl      s                         	T
RSSX\XaTW  gFbe  MS  GL  Z  TY _ _ _ < < <= = =u u u R R R	L 	L 	L Zr   