
    J_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 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             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        dk    r ed           ee          ed          k    se                    d!          d"ur ed#           e            Z e d$         !                    d%          Z"ej#        $                    e"d&z   d'e d(         i)          Z%ej#        &                    e%d*+          5 Z' ej(        e'                              d,          dur ed-          	 ddd           n# 1 swxY w Y    ed.e          Z) ed/e          Z*i d0d1d2e	j+        d3d4ddddd5e
d6ed7ed          d8ed         d9         d         d: e,e          d  ee          d;e                                j        d<e)d=         d>e*d=         d?d@dAdBdCdDdE e            iZ- eedFz  e-            e. ej/        dde)d=         dG         e*d=         dG         e-d;         dHd"I                     dS )J    )PathNzH/data/video-pipeline/HaTramAudio/project/019-Buc-Tuong-Giua-Hai-Ban-Congzrun-20260721T065616Z-a7dbad2fz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    /data/video-pipeline/HaTramAudio/project/019-Buc-Tuong-Giua-Hai-Ban-Cong/work/upload/run-20260721T065616Z-a7dbad2f/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    c                      t           j                             t           j        j                                                                      dd          S )Nz+00:00Z)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   shar/      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   )r,   r   ts      r   atomicr;      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)dictr9   environCFGr   
splitlinesstrip
startswithsplit
setdefaultr   )rawskvreqmissr   s         @r   envrV      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)ra   rb   )rstrip
subprocessrunPIPE
returncoder   r^   r   r   r]   
isinstancerH   r   list)basekeyr,   cfgrrS   ms          r   uploadro      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          |          }|                                rt          j        |                                          }|                    d          |k    sY|                    d          |                                j        k    s)|                    di                               d          st          d          |S t          t          d         t          d	         |          }d
t          j        t          ddt          t!          |          ||                                j        |t#                      d}t%          ||           |S )Nzupload-z.jsonlocal_sha256local_bytesmediara   zstale upload receiptr@   rA   r?   	completedT)schema_versionr   r   statusverifiedsource_canon_sha256
local_pathrq   rr   rs   completed_at)LOGr/   existsr   r   r   r   statst_sizer   ro   Er   r   r   CANONstrr   r;   )labelr,   rpr-   r   rn   s         r   oner   %   s   %#a&&IIKK Jr||~~!UU>A}!5!5qvvxx7G!G!GquuU\]_O`O`OdOdeiOjOj!Gr~  @V  sW  sW  mW	
(	!
q!12155DIsK[_v{  JM  NO  JP  JP  `a  pq  pv  pv  px  px  p@  IJ  Z]  Z_  Z_  `  `  ag  hj  kl  am  am  am  uv  nvr   zpublish-ready.jsonzposter.jsonrv   rt   	readinessreadyrw   Tzpublish-ready failed	artifactsupload_copyr'   i ʚ;zvideo mismatchartifact_sha256text_postprocessedFzthumbnail mismatchr@   rX   z/is-connectedAuthorizationrA   )headers<   )r_   	connectedzPostiz disconnectedvideo	thumbnailru   r?   r   gatero   r   rx   source_poster_sha256source_layout_sha256layoutartifact_pathrr   video_mediars   thumbnail_mediavideo_receiptzlog/upload-video.jsonthumbnail_receiptzlog/upload-thumbnail.jsonpublish_ready_receiptzlog/publish-ready.jsonrz   zupload.jsonra   )rv   rw   video_media_idthumbnail_media_idrr   )r3   )0pathlibr   r   r&   r9   rd   r   urllib.requesturllibr   r   r   r   r   VIDEOTHUMBr{   homerJ   r   r   r/   r;   rV   ro   r   r   posterr   r   r}   r~   r   rc   rj   requestRequestrT   urlopenrm   loadrS   r:   r   r   outprintr8   r   r   r   <module>r      sE         9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9	T
TUU[zWZ  CM  CG  CM  OS  Tr  Or  N}  N}  N  N  C@  C@  AO  CP  }B
$$D1^,^edhindn`ct}txt}tt  Ac  ucpsE E E  ` ` `  
q q q
 
 
( ( (v v v 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   1II"I