
    _j&              
       
   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZ	 ed          Z
dZ ej        e
dz                                            d         Ze
dz  Ze
dz  Ze
d	z  Z ej                    d
z  Zd Z e              ej        e
dz                                            Ze                    di                               d          dk    r ed          e                    di                               dg           D ]=Ze                    di                               e          dk    r edez             > ej        e
dz                                            Zej                            ed                             dd                    Ze                    d          dk    sZe                    d          ek    sAe                    d          dk    s(eej                            ej        j                  k    r ed          e
dz                       d          Z! ej"        e!ej#        ej$        z             n# e%$ r  ed          w xY wd  Zd! Z&d" Z'd# Z(d$ Z)d% Z* ej        ed&z                                            Z+ ej        ed'z                                            Z,e+                    d          dk    s0e+                    d(          d)k    se+                    d*          d+ur ed,           e&e          e+d-         d.         d/         k    se-                                j.        d0k    r ed1           e&e          e,d2         k    se,                    d3          d4ur ed5           e(            Z/e/d6         0                    d7          Z1e	j2        3                    e1d8z   d9e/d:         i;          Z4e	j2        5                    e4d<=          5 Z6 ej7        e6                              d>          d+ur ed?          	 ddd           n# 1 swxY w Y    e*d@e          Z8 e*dAe          Z9i dBdCdDe
j:        dEdddd*d+dedFedGe,d2         dHe+d-         dI         d/         dJ e;e          d2 e&e          dKe-                                j.        dLe8dM         dNe9dM         dOdPdQdRdSdTdU e            iZ< e'edVz  e<            e= ej>        dd+e8dM         dW         e9dM         dW         e<dK         dXd4Y                     dS )Z    )PathNzD/data/video-pipeline/HaTramAudio/project/025-Nguoi-Giu-Cho-Cuoi-Cungzrun-20260721T232244Z-a0837ee4zscript/project-manifest.jsoncanon_sha256zoutput/final-upload.mp4z+image/normalized/intro-poster-1920x1080.pnglogz .config/ha-tram-audio/postiz.envc                  4   t          j        t          dz                                            } |                     d          t          j        k    s7|                     d          t          k    s|                     d          dk    rt          d          d S )Nz.ownership-lock.json
project_idrun_idownerLevyzownership guard mismatch)jsonloadsROOT	read_textgetnameRUNRuntimeError)ds    :work/upload/run-20260721T172022Z-9462493a/upload_postiz.pyguardr      s    :t**557788EE,""aeeHoos&:&:aeeGnnf>T>T\h  jD  ]E  ]E  WE>T>T    stepsuploadpendingzupload gate is not pendingdependencies	completedzupload dependency incomplete: zscript/gate-leases/upload.json
expires_atZ+00:00statusactiver   r	   r
   zactive upload lease requiredz)script/gate-leases/.upload-execution.lockza+z(another upload process is already activec                      t           j                             t           j        j                                                                      dd          S )Nr   r   )datetimenowtimezoneutc	isoformatreplace r   r   r#   r#      s<    (#''(9(=>>HHJJRRS[\_```r   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    qvvk** r   r   )hashlibsha256openiterupdate	hexdigest)phbr-   s      @r   shar8      s    
>ffTll =a****3//<<a!<= = = = = = = = = = = = = = =	s   ,A##A'*A'c                     t                       |                     d| j        z   dz             }|                    t	          j        |dd          dz              t          j        ||            d S )N.z.tmpF   )ensure_asciiindent
)r   	with_namer   
write_textr   dumpsosr'   )r5   r   ts      r   atomicrD      sk    ;;s16z& !!1<<
1%WX0Y0Y0YZ^0^#_#_#_acaklmnoapapapapapr   c                     t          t          j                  t                                                                          D ]} |                                 }|r|                    d          sjd|v rf|                    dd          \  }}	                    |                                |                                                    d                     g d}fd|D             }|rt          d          S )N#=   z"')POSTIZ_BASE_URLPOSTIZ_API_KEYPOSTIZ_FACEBOOK_INTEGRATION_IDPOSTIZ_YOUTUBE_INTEGRATION_IDc                 >    g | ]}                     |          |S r(   )r   ).0xr   s     r   
<listcomp>zenv.<locals>.<listcomp>$   sd      rR  rR  rRxy  IJ  IN  IN  OP  IQ  IQ  rRrs  rR  rR  rRr   zmissing Postiz config)dictrB   environCFGr   
splitlinesstrip
startswithsplit
setdefaultr   )rawskvreqmissr   s         @r   envr_      s   
MMOO&&(( F FSIIKK! Fq||C   FSAXXwws1~~31Qq||AGGIIaggiiooe.D.DEEEjjj  rR  rR  rR  rR  ~A  rR  rR  rRlp5455
5	r   c                 x   d|                      d           d| d| d}t          j        g d|dt          j        t          j        d	          }|j        rt          d
|j        dd          z             t          j        |j	                  }t          |t                    r|                    d|          n|}t          |t                    r|r|d         ni }t          |t                    r*|                    d          r|                    d          st          d          |d         |d         dS )Nzurl = "/z"/upload"
header = "Authorization: z4"
header = "Accept: application/json"
form = "file=@z#"
silent
show-error
fail-with-body
)curlz--config-Ti   )inputtextstdoutstderrtimeoutzPostiz upload failed: idatar   idpathzinvalid upload response)rj   rk   )rstrip
subprocessrunPIPE
returncoder   rg   r   r   rf   
isinstancerQ   r   list)basekeyr5   cfgrr\   ms          r   r   r   '   sA    jt{{3  j  jC  j  j  @A  j  j  j>)))Z_\f\ktxyyyLN%=ahtuuo%MNNN:ahj4.@.@G155???aq+!+!A$$1Tq!%%++qQUU6]]q,WpJqJqDqgQvY'''r   c                    t           d|  dz  }t           d|  dz  }t          |          }|                                j        }|                                rt          j        |                                          }|                    d          |k    sB|                    d          |k    s)|                    di                               d          st          d          |S |                                rYt          j        |                                          }|                    d	          t          j        k    sP|                    d
          t          k    s2|                    d          |k    s|                    d          |k    rt          d          |                    d          }t          |t                    r*|                    d          r|                    d          st          d          dt          j        t          ddt          t!          |          |||dt#                      d}t%          ||           |S dt          j        t          | ddt          t!          |          ||t#                      d}t%          ||           t'          t(          d         t(          d         |          }	|                    d|	t#                      d           t%          ||           dt          j        t          ddt          t!          |          |||	t!          |          t#                      d}t%          ||           |S )Nzupload-z.jsonz-intent.jsonlocal_sha256local_bytesmediarj   zstale upload receiptr   r   zstale/foreign upload intentrk   z>ambiguous upload intent without media ID; do not retry blindlyrH   r   T)schema_versionr   r   r   verifiedsource_canon_sha256
local_pathry   rz   r{   reconciled_from_intentcompleted_atcreatingF)r|   r   r   labelr   r}   r~   r   ry   rz   
created_atrI   rJ   accepted)r   r{   accepted_at)r|   r   r   r   r}   r~   r   ry   rz   r{   intent_pathr   )LOGr8   statst_sizeexistsr   r   r   r   r   r   r   r   rq   rQ   CANONstrr#   rD   r   Er3   )
r   r5   rpipr6   sizer   intentr{   rw   s
             r   oner   0   sM   %3'D'D'D'D#DAaUVU[U[U]U]UePTIIKK Jr||~~!UU>A}!5!5t!;!;155QSCTCTCXCXY]C^C^!;fr  tJ  gK  gK  aK	
(IIKK M	BLLNN	#	#&ZZty((FJJx,@,@#,E,ETbIcIcefIfIfjpjtjt  vC  kD  kD  FJ  kJ  kJ  R^  _|  R}  R}  L}

7%	E$		  fuyy  feii>O>O  fWc  ee  Xf  Xf  RfTY[\`w|  KN  OP  KQ  KQ  ab  qu  ~C  ]a  qt  qv  qv  w  w!  x~  A  BC  xD  xD  xD  LM  EMCWamr  JO  ]`  ab  ]c  ]c  st  CG  UX  UZ  UZ  	[  	[  \b  ce  fl  \m  \m  \m	!
q!12155ACEEBBCCCF2fDUDUDUDIsK[_v{  JM  NO  JP  JP  `a  pt  }~  MP  QS  MT  MT  dg  di  di  j  j  kq  rt  uv  kw  kw  kw  @  x@r   zpublish-ready.jsonzposter.json	readinessreadyr}   Tzpublish-ready failed	artifactsupload_copyr0   i ʚ;zvideo mismatchartifact_sha256text_postprocessedFzthumbnail mismatchrI   ra   z/is-connectedAuthorizationrJ   )headers<   )rh   	connectedzPostiz disconnectedvideo	thumbnailr|   rH   r   gater~   source_poster_sha256source_layout_sha256layoutartifact_pathrz   video_mediar{   thumbnail_mediavideo_receiptzlog/upload-video.jsonthumbnail_receiptzlog/upload-thumbnail.jsonpublish_ready_receiptzlog/publish-ready.jsonr   zupload.jsonrj   )r   r}   video_media_idthumbnail_media_idrz   )r<   )?pathlibr   r"   fcntlr/   r   rB   rm   urllib.requesturllibr   r   r   r   r   VIDEOTHUMBr   homerS   r   manifestr   r   depleasefromisoformatr'   expiresr#   r$   r%   r1   execution_lockflockLOCK_EXLOCK_NBBlockingIOErrorr8   rD   r_   r   r   r   posterr   r   r   rl   rs   requestRequestr]   urlopenrv   loadr\   rC   r   r   outprintrA   r(   r   r   <module>r      sn	         ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?	T
PQQWvSV  I  C  I  KO  Pn  Kn  Jy  Jy  J{  J{  |  |  }K  Lx}
$$D1^,^edhindn`ct}txt}tt  Ac  ucpsE E E 	T88CCEE	F	F<<))944LLIe<f<f6f<<r**..x;; m mCLL  %%{22,,GghkGk:l:l4l2dj$77BBDDEE''l(;(C(CC(Q(QRR99X  EIIh$7$7$<$<		'@R@RTZ@Z@Z^egogxg|g|  ~F  ~O  ~S  hT  hT  _T  _T  \h  \h  iG  \H  \H  VH@@FFtLLU[em ;<<<< V V Vll+UVVV V ` ` `  
q q q
 
 
( ( (@ @ @  dj#**557788SQ^M^LiLiLkLkAlAl&99X##uyy'='=w'F'F%))T^J_J_gkJkJkss  AW  tX  tX  nX3u::u[!-0:::ejjll>RTa>a>aiuiu  wG  jH  jH  dH3u::v'(((FJJ7K,L,LTY,Y,Yamam  oC  bD  bD  \D#%%a!"))#..FN4J4J4P_K_ixyz  |L  zM  iN4J  5O  5O^C++ YqDIaLL[!!--\\BW5X5X/X-Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y#geK..a la  lTY  lvh  lx  lT^_c  ldlmp  l  rG  HM  l  Nd  ek  l}  e~  l  U  V[  \g  Vh  iq  Vr  s{  V|  l  }L  MP  MP  QV  MW  MW  l  Xi  jm  jm  ns  jt  jt  l  uB  CH  CM  CM  CO  CO  CW  l  Xe  fg  ho  fp  l  qB  CD  EL  CM  l  N]  ^u  l  vI  Je  l  f}  ~V  l  We  fi  fi  fk  fk  l  l  ms  ms  tw  xE	  tE	  F	I	  mJ	  mJ	  mJ	  K	P	  K	P	  Q	[	  Q	U	  Q	[	  f	q	  }	A
  S
T
  U
\
  S
]
  ^
b
  S
c
  y
z
  {
B  y
C  DH  y
I  X[  \i  Xj  \	k  \	k  y~  Q	  Q	  Q	  K	@  K	@  K	@  K	@  K	@s   =I I-1QQ
Q
